Combina due colonne di testo in DataFrame in Pandas

  1. Metodo dell’operatore +
  2. Metodo df.map()
  3. Metodo df.apply()
  4. Metodo Series.str.cat()
  5. Metodo df.agg()

Quando si lavora con i set di dati alcune volte è necessario combinare due o più colonne per formare una colonna. Ad esempio, hai un set di dati con first name e last name separati in colonne e ora hai bisogno della colonna Full Name. Di seguito sono elencati i diversi modi per eseguire questa operazione.

  1. Operatore +
  2. map()
  3. df.apply()
  4. Series.str.cat()
  5. df.agg()

Useremo lo stesso DataFrame nelle prossime sezioni come segue,

import pandas as pd
data = [
    ['Ali',
     'Azmat',
     '30'],
    ['Sharukh',
     'Khan',
     '40'],
    ['Linus',
     'Torvalds',
     '70']
]
df = pd.DataFrame(data,columns=['First','Last','Age'])
print (df)

Verrà emesso quanto segue.

     First      Last Age
0      Ali     Azmat  30
1  Sharukh      Khan  40
2    Linus  Torvalds  70

Metodo dell’operatore +

Usa l’operatore + semplicemente se vuoi combinare dati dello stesso tipo di dati.

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)

Verrà emesso quanto segue.

     First      Last Age       Full Name
0      Ali     Azmat  30       Ali Azmat
1  Sharukh      Khan  40    Sharukh Khan
2    Linus  Torvalds  70  Linus Torvalds

Metodo df.map()

Puoi anche usare la funzione df.map() per combinare il testo di due colonne.

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)

Verrà emesso quanto segue.

     First      Last Age       Full Name
0      Ali     Azmat  30       Ali Azmat
1  Sharukh      Khan  40    Sharukh Khan
2    Linus  Torvalds  70  Linus Torvalds

Metodo df.apply()

La funzione join() è usata anche per unire le stringhe. Possiamo applicarlo sul nostro DataFrame usando la funzione df.apply(). La funzione df.apply() viene utilizzata per applicare un’altra funzione su un asse specifico.

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)

Verrà emesso quanto segue.

     First      Last Age       Full Name
0      Ali     Azmat  30       Ali Azmat
1  Sharukh      Khan  40    Sharukh Khan
2    Linus  Torvalds  70  Linus Torvalds

Metodo Series.str.cat()

Possiamo anche usare questo metodo Series.str.cat() per concatenare le stringhe nella serie / indice con il separatore dato.

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)

Verrà emesso quanto segue.

     First      Last Age       Full Name
0      Ali     Azmat  30       Ali Azmat
1  Sharukh      Khan  40    Sharukh Khan
2    Linus  Torvalds  70  Linus Torvalds

Metodo df.agg()

Come df.apply(), questo metodo è utilizzato anche per applicare una funzione specifica sull’asse specificato.

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)

Verrà emesso quanto segue.

     First      Last Age       Full Name
0      Ali     Azmat  30       Ali Azmat
1  Sharukh      Khan  40    Sharukh Khan
2    Linus  Torvalds  70  Linus Torvalds

Articolo correlato - Pandas DataFrame Column

  • Selezionare le colonne del DataFrame Pandas
  • Ottieni la colonna della somma dei pandas