Combinar duas colunas de texto em DataFrame em Pandas

  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

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

  • Como obter índice de todas as linhas cuja coluna específica satisfaz dada a condição em Pandas
  • Normalizar uma Coluna em Pandas Dataframe