Comment effectuer une jointure croisée dans Pandas (avec exemple)
Vous pouvez utiliser la syntaxe de base suivante pour effectuer une jointure croisée dans les pandas :
#create common key df1['key'] = 0 df2['key'] = 0 #outer merge on common key (e.g. a cross join) df1.merge(df2, on='key', how='outer')
L’exemple suivant montre comment utiliser cette fonction dans la pratique.
Exemple : effectuer une jointure croisée dans Pandas
Supposons que nous ayons les deux DataFrames pandas suivants :
import pandas as pd
#create first DataFrame
df1 = pd.DataFrame({'team': ['A', 'B', 'C', 'D'],
'points': [18, 22, 19, 14]})
print(df1)
team points
0 A 18
1 B 22
2 C 19
3 D 14
#create second DataFrame
df2 = pd.DataFrame({'team': ['A', 'B', 'F'],
'assists': [4, 9, 8]})
print(df2)
team assists
0 A 4
1 B 9
2 F 8
Le code suivant montre comment effectuer une jointure croisée sur les deux DataFrames :
#create common key
df1['key'] = 0
df2['key'] = 0
#perform cross join
df3 = df1.merge(df2, on='key', how='outer')
#drop key columm
del df3['key']
#view results
print(df3)
team_x points team_y assists
0 A 18 A 4
1 A 18 B 9
2 A 18 F 8
3 B 22 A 4
4 B 22 B 9
5 B 22 F 8
6 C 19 A 4
7 C 19 B 9
8 C 19 F 8
9 D 14 A 4
10 D 14 B 9
11 D 14 F 8
Le résultat est un DataFrame qui contient toutes les combinaisons possibles de lignes de chaque DataFrame.
Par exemple, la première ligne du premier DataFrame contient l’équipe A et 18 points. Cette ligne correspond à chaque ligne du deuxième DataFrame.
Ensuite, la deuxième ligne du premier DataFrame contient l’équipe B et 22 points. Cette ligne correspond également à chaque ligne du deuxième DataFrame.
Le résultat final est un DataFrame avec 12 lignes.
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans les pandas :
Comment faire une jointure à gauche dans Pandas
Comment faire une jointure à gauche dans Pandas
Pandas Rejoindre ou Fusionner : Quelle est la différence ?