Pandas Rejoindre ou Fusionner : Quelle est la différence ?



Les fonctions join() et merge() peuvent être utilisées pour combiner deux DataFrames pandas.

Voici la principale différence entre les deux fonctions :

  • La fonction join() combine deux DataFrames par index.
  • La fonction merge() combine deux DataFrames selon la colonne que vous spécifiez.

Ces fonctions utilisent la syntaxe de base suivante :

#use join() to combine two DataFrames by index
df1.join(df2)

#use merge() to combine two DataFrames by specific column name
df1.merge(df2, on='column_name')

Dans les cas où vous savez que vous souhaitez joindre deux DataFrames par index, la fonction join() peut être utilisée pour économiser de la saisie.

Les exemples suivants montrent comment utiliser chaque fonction dans la pratique.

Exemple 1 : Comment utiliser la fonction join()

Le code suivant montre comment utiliser la fonction join() pour combiner deux DataFrames :

import pandas as pd

#create two DataFrames
df1 = pd.DataFrame({'name': ['A', 'B', 'C'], 'points': [8, 12, 19]}).set_index('name')
df2 = pd.DataFrame({'name': ['A', 'B', 'C'], 'steals': [4, 5, 2]}).set_index('name')

#view two DataFrames
print(df1); print(df2)

      points                 steals
name                   name
A          8           A          4
B         12           B          5
C         19           C          2

#use join() function to join together two DataFrames
df1.join(df2)

	points	steals
name		
A	8	4
B	12	5
C	19	2

Par défaut, la fonction join() joignait les deux DataFrames à l’aide de la colonne index.

Exemple 2 : Comment utiliser la fonction merge()

Le code suivant montre comment utiliser la fonction merge() pour combiner deux DataFrames :

import pandas as pd

#create two DataFrames
df1 = pd.DataFrame({'name': ['A', 'B', 'C'], 'points': [8, 12, 19]}).set_index('name')
df2 = pd.DataFrame({'name': ['A', 'B', 'C'], 'steals': [4, 5, 2]}).set_index('name')

#view two DataFrames
print(df1); print(df2)

      points                 steals
name                   name
A          8           A          4
B         12           B          5
C         19           C          2

#use join() function to join together two DataFrames
df1.merge(df2, on='name')

	points	steals
name		
A	8	4
B	12	5
C	19	2

Notez que la fonction merge() a renvoyé exactement le même résultat, mais nous avons dû dire explicitement aux pandas de rejoindre les DataFrames en utilisant la colonne « nom ».

Ressources additionnelles

Vous pouvez trouver la documentation complète en ligne pour les fonctions join() et merge() ici :

Documentation pour la fonction join()
Documentation pour la fonction merge()

Les didacticiels suivants expliquent comment exécuter d’autres fonctions courantes dans les pandas :

Comment ajouter des lignes à un DataFrame Pandas
Comment ajouter une ligne d’en-tête au Pandas DataFrame
Comment obtenir la première rangée de Pandas DataFrame
Comment obtenir la première colonne de Pandas DataFrame

Ajouter un commentaire

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