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 pdAttributs :
Paramètre Description otherLe DataFrame à fusionner avec l'objet courant. onLa colonne ou l'index sur laquelle effectuer la fusion (utilisé lorsque vous joignez sur une colonne spécifique). howLe 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 lsuffixSuffixe ajouté aux colonnes du DataFrame gauche en cas de conflits de noms. rsuffixSuffixe 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 pdCette ligne importe la bibliothèque
pandasqui 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,villeetnom. Ensuite, on définit la colonneidcomme 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
ageavec un index qui correspond aux valeurs deiddu 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
df1etdf2sont 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,nometageavecidcomme index.