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 ?

Ajouter un commentaire

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