Combinar duas colunas de texto em DataFrame em Pandas

Ahmed Waheed 30 janeiro 2023
  1. + Método do operador
  2. df.map() Método
  3. df.apply() Método
  4. Series.str.cat() Método
  5. df.agg() Método
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.

  1. operador +
  2. map()
  3. df.apply()
  4. Series.str.cat()
  5. 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