Combiner deux colonnes de texte dans DataFrame in Pandas

Ahmed Waheed 30 janvier 2023
  1. Méthode de l’opérateur “+”
  2. La méthode df.map()
  3. Méthode df.apply()
  4. Méthode Series.str.cat()
  5. Méthode df.agg()
Combiner deux colonnes de texte dans DataFrame in Pandas

Lorsque vous travaillez avec des ensembles de données, vous devez parfois combiner deux ou plusieurs colonnes pour n’en former qu’une seule. Par exemple, vous avez un ensemble de données avec first name et last name séparés dans des colonnes, et vous avez maintenant besoin de la colonne full name. Vous trouverez ci-dessous les différentes façons de réaliser cette tâche.

  1. L’opérateur “+”.
  2. map()
  3. df.apply()
  4. Series.str.cat()
  5. df.agg()

Nous utiliserons le même DataFrame dans les prochaines sections comme suit,

import pandas as pd

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

Production:

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

Méthode de l’opérateur “+”

Utilisez l’opérateur + simplement si vous voulez combiner des données du même type.

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)

La sortie sera la suivante.

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

La méthode df.map()

Vous pouvez également utiliser la fonction df.map() pour combiner le texte de deux colonnes.

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)

Le résultat sera le suivant.

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

Méthode df.apply()

La fonction join() est également utilisée pour joindre des chaînes de caractères. Nous pouvons l’appliquer sur notre DataFrame en utilisant la fonction df.apply(). La fonction df.apply() est utilisée pour appliquer une autre fonction sur un axe spécifique.

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)

La sortie sera la suivante.

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

Méthode Series.str.cat()

Nous pouvons également utiliser cette méthode series.str.cat() pour concaténer les chaînes de caractères dans la Series/Index avec le séparateur donné.

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)

Production:

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

Méthode df.agg()

Tout comme df.apply() cette méthode est également utilisée pour appliquer une fonction spécifique sur l’axe spécifié.

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)

Production:

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

Article connexe - Pandas DataFrame Column