Pandas : Comment fusionner deux DataFrames avec des noms de colonnes différents



Vous pouvez utiliser la syntaxe de base suivante pour fusionner deux DataFrames pandas avec des noms de colonnes différents :

pd.merge(df1, df2, left_on='left_column_name', right_on='right_column_name')

L’exemple suivant montre comment utiliser cette syntaxe dans la pratique.

Exemple : fusionner deux DataFrames Pandas avec des noms de colonnes différents

Supposons que nous ayons les deux DataFrames pandas suivants :

import pandas as pd

#create first DataFrame
df1 = pd.DataFrame({'team': ['A', 'B', 'C', 'D', 'E', 'F'],
                    'points': [4, 4, 6, 8, 9, 5]})

#view DataFrame
print(df1)

  team  points
0    A       4
1    B       4
2    C       6
3    D       8
4    E       9
5    F       5

#create second  DataFrame
df2 = pd.DataFrame({'team_name': ['A', 'B', 'C', 'D', 'E', 'F'],
                    'rebounds': [12, 7, 8, 8, 5, 11]})

#view DataFrame
print(df2)

  team_name  rebounds
0         A        12
1         B         7
2         C         8
3         D         8
4         E         5
5         F        11

Nous pouvons utiliser la syntaxe suivante pour effectuer une jointure interne, en utilisant la colonne team dans le premier DataFrame et la colonne team_name dans le deuxième DataFrame :

#merge DataFrames
df3 = pd.merge(df1, df2, left_on='team', right_on='team_name')

#view result
print(df3)

  team  points team_name  rebounds
0    A       4         A        12
1    B       4         B         7
2    C       6         C         8
3    D       8         D         8
4    E       9         E         5
5    F       5         F        11

Notez que nous sommes en mesure d’effectuer avec succès une jointure interne même si les deux noms de colonnes que nous avons utilisés pour la jointure étaient différents dans chaque DataFrame.

Notez que nous pouvons également utiliser le code suivant pour supprimer la colonne team_name du DataFrame final fusionné puisque les valeurs de cette colonne correspondent à celles de la colonne team :

#drop team_name column
df3.drop('team_name', axis=1, inplace=True)

#view updated DataFrame
print(df3)

  team  points  rebounds
0    A       4        12
1    B       4         7
2    C       6         8
3    D       8         8
4    E       9         5
5    F       5        11

Notez que la colonne team_name a été supprimée du DataFrame.

Connexe : Comment supprimer des colonnes dans Pandas (4 exemples)

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes chez les pandas :

Comment changer l’ordre des colonnes dans Pandas
Comment renommer des colonnes dans Pandas
Comment trier les colonnes par nom dans Pandas

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *