Combinar duas colunas de texto em DataFrame em Pandas
Ao trabalhar com conjuntos de dados algumas vezes é necessário combinar duas ou mais colunas para formar uma coluna. Por exemplo, você tem um array de dados com primeiro nome
e último nome
separados em colunas, e agora você precisa da coluna Nome completo
. Abaixo estão listadas as diferentes maneiras de realizar esta tarefa.
- operador
+
map()
df.apply()
Series.str.cat()
df.agg()
Utilizaremos o mesmo DataFrame
nas próximas seções como a seguir,
import pandas as pd
data = [["Ali", "Azmat", "30"], ["Sharukh", "Khan", "40"], ["Linus", "Torvalds", "70"]]
df = pd.DataFrame(data, columns=["First", "Last", "Age"])
print(df)
O seguinte será produzido.
First Last Age
0 Ali Azmat 30
1 Sharukh Khan 40
2 Linus Torvalds 70
+
Método do operador
Utilize o operador +
simplesmente se você quiser combinar dados do mesmo tipo de dados.
import pandas as pd
data = [["Ali", "Azmat", "30"], ["Sharukh", "Khan", "40"], ["Linus", "Torvalds", "70"]]
df = pd.DataFrame(data, columns=["First", "Last", "Age"])
df["Full Name"] = df["First"] + " " + df["Last"]
print(df)
O seguinte será emitido.
First Last Age Full Name
0 Ali Azmat 30 Ali Azmat
1 Sharukh Khan 40 Sharukh Khan
2 Linus Torvalds 70 Linus Torvalds
df.map()
Método
Você também pode utilizar a função df.map()
para combinar o texto de duas colunas.
import pandas as pd
data = [["Ali", "Azmat", "30"], ["Sharukh", "Khan", "40"], ["Linus", "Torvalds", "70"]]
df = pd.DataFrame(data, columns=["First", "Last", "Age"])
df["Full Name"] = df["First"].map(str) + " " + df["Last"]
print(df)
O seguinte será emitido.
First Last Age Full Name
0 Ali Azmat 30 Ali Azmat
1 Sharukh Khan 40 Sharukh Khan
2 Linus Torvalds 70 Linus Torvalds
df.apply()
Método
A função join()
também é utilizada para unir strings. Podemos aplicá-la em nossa DataFrame
utilizando a função df.apply()
. A função df.apply()
é utilizada para aplicar outra função em um eixo específico.
import pandas as pd
data = [["Ali", "Azmat", "30"], ["Sharukh", "Khan", "40"], ["Linus", "Torvalds", "70"]]
df["Full Name"] = df[["First", "Last"]].apply(" ".join, axis=1)
print(df)
O seguinte será produzido.
First Last Age Full Name
0 Ali Azmat 30 Ali Azmat
1 Sharukh Khan 40 Sharukh Khan
2 Linus Torvalds 70 Linus Torvalds
Series.str.cat()
Método
Também podemos utilizar este método Series.str.cat()
para concatenar as strings na Série/Index com o separador dado.
import pandas as pd
data = [["Ali", "Azmat", "30"], ["Sharukh", "Khan", "40"], ["Linus", "Torvalds", "70"]]
df["Full Name"] = df["First"].str.cat(df["Last"], sep=" ")
print(df)
O seguinte será produzido.
First Last Age Full Name
0 Ali Azmat 30 Ali Azmat
1 Sharukh Khan 40 Sharukh Khan
2 Linus Torvalds 70 Linus Torvalds
df.agg()
Método
O mesmo que df.apply()
este método também é utilizado para aplicar uma função específica sobre o eixo especificado.
import pandas as pd
data = [["Ali", "Azmat", "30"], ["Sharukh", "Khan", "40"], ["Linus", "Torvalds", "70"]]
df["Full Name"] = df[["First", "Last"]].agg(" ".join, axis=1)
print(df)
O seguinte será emitido.
First Last Age Full Name
0 Ali Azmat 30 Ali Azmat
1 Sharukh Khan 40 Sharukh Khan
2 Linus Torvalds 70 Linus Torvalds
Artigo relacionado - Pandas DataFrame Column
- Como obter os cabeçalhos da coluna Pandas DataFrame como uma lista
- Como eliminar a coluna Pandas DataFrame
- Como Converter a Coluna DataFrame para DataTempo em Pandas
- Como obter a Soma da Coluna Pandas
- Como mudar a ordem das colunas Pandas DataFrame
- Como converter a coluna DataFrame em String em Pandas