Utilisation de join() pour fusionner sur l’index
La méthode join() permet de fusionner des DataFrames en utilisant l’index comme clé de jointure. Contrairement à merge(), qui se base sur des colonnes spécifiques, join() permet de lier les DataFrames en alignant les indices. Cette méthode est idéale lorsque vous travaillez avec des DataFrames dont les indices sont significatifs et que vous souhaitez les combiner sans spécifier de colonnes de jointure explicites. Elle offre aussi la possibilité de réaliser des jointures left, right, outer, ou inner sur l’index, ce qui vous permet de choisir comment gérer les lignes manquantes.
Fonctions :
-
join()
La méthode join() de pandas est utilisée pour fusionner des DataFrames en fonction de leur index. Elle peut également être utilisée pour fusionner un DataFrame avec un autre basé sur une colonne spécifiée de l'un des DataFrames. Elle est souvent utilisée lorsque vous voulez joindre des DataFrames sur leur index, mais peut aussi être utilisée pour joindre sur une colonne spécifique en utilisant l'argument on.
Importation :
import pandas as pd
Attributs :
Paramètre Description other
Le DataFrame à fusionner avec l'objet courant. on
La colonne ou l'index sur laquelle effectuer la fusion (utilisé lorsque vous joignez sur une colonne spécifique). how
Le type de jointure à effectuer : 'left'
(par défaut) : jointure à gauche, garde toutes les lignes du DataFrame gauche.'right'
: jointure à droite, garde toutes les lignes du DataFrame de droite.'outer'
: jointure externe, garde toutes les lignes des deux DataFrames avec NaN pour les lignes qui n'ont pas de correspondance.'inner'
: jointure interne, garde uniquement les lignes avec des correspondances dans les deux DataFrames.
Attribut Description lsuffix
Suffixe ajouté aux colonnes du DataFrame gauche en cas de conflits de noms. rsuffix
Suffixe ajouté aux colonnes du DataFrame droit en cas de conflits de noms. Exemple de code :
import pandas as pd # Exemple de DataFrames df1 = pd.DataFrame({ 'id': [1, 2, 3], 'ville': ['Paris', 'Lyon', 'Marseille'], 'nom': ['Alice', 'Bob', 'Charlie'] }).set_index('id') # Définir 'id' comme index df2 = pd.DataFrame({ 'age': [24, 25, 30] }, index=[1, 2, 3]) # 'id' est l'index # Fusion avec `join()` sur l'index df_joined = df1.join(df2) # Affichage du DataFrame fusionné print(df_joined)
Explication du code :
Importation de la bibliothèque
import pandas as pd
Cette ligne importe la bibliothèque
pandas
qui est utilisée pour la manipulation de données tabulaires.Création du premier DataFrame avec un index
df1 = pd.DataFrame({'id': [1, 2, 3], 'ville': ['Paris', 'Lyon', 'Marseille'], 'nom': ['Alice', 'Bob', 'Charlie']}).set_index('id')
On crée un premier DataFrame contenant les colonnes
id
,ville
etnom
. Ensuite, on définit la colonneid
comme index grâce à.set_index('id')
.Création du second DataFrame avec un index correspondant
df2 = pd.DataFrame({'age': [24, 25, 30]}, index=[1, 2, 3])
Ce deuxième DataFrame contient une seule colonne
age
avec un index qui correspond aux valeurs deid
du premier DataFrame.Fusion des deux DataFrames sur l’index
df_joined = df1.join(df2)
La méthode
join()
permet ici de fusionner les deux DataFrames en se basant sur l’index commun (ici les identifiantsid
).Les lignes ayant les mêmes index dans
df1
etdf2
sont fusionnées, ajoutant la colonneage
àdf1
.Affichage du DataFrame fusionné
print(df_joined)
Cette instruction affiche le résultat final, qui contient les colonnes
ville
,nom
etage
avecid
comme index.