Fusion sur plusieurs colonnes avec merge()
La fusion sur plusieurs colonnes avec merge() permet de combiner deux DataFrames en utilisant plusieurs colonnes communes comme clés de jointure. Vous pouvez spécifier une liste de colonnes à utiliser pour la fusion, ce qui permet une jointure plus précise entre les DataFrames. Cela est utile lorsque les colonnes individuelles ne suffisent pas pour identifier de manière unique les lignes correspondantes.
Fonctions :
-
merge(on=['col1', 'col2'])
La fonction pd.merge() permet de fusionner deux DataFrames sur plusieurs colonnes en spécifiant une liste de colonnes dans l'argument on. Cela permet de joindre les DataFrames sur une combinaison de plusieurs clés. Cette fonctionnalité est utile lorsque les colonnes seules ne sont pas uniques pour effectuer une fusion, mais que la combinaison de plusieurs colonnes peut être utilisée pour cela.
Importation :
import pandas as pdAttributs :
Paramètre Description onUne liste de colonnes sur lesquelles la fusion sera effectuée (doit exister dans les deux DataFrames). how'inner'(par défaut) : jointure interne, garde uniquement les lignes communes entre les deux DataFrames.'outer': jointure externe, garde toutes les lignes, avec NaN pour les valeurs manquantes.'left': jointure à gauche, garde toutes les lignes du DataFrame de gauche.'right': jointure à droite, garde toutes les lignes du DataFrame de droite.
left_onSpécifie la ou les colonnes du DataFrame de gauche sur lesquelles la fusion doit être effectuée (si elles diffèrent du paramètre on).right_onSpécifie la ou les colonnes du DataFrame de droite sur lesquelles la fusion doit être effectuée (si elles diffèrent du paramètre on).suffixesUn tuple qui ajoute un suffixe aux colonnes avec des noms communs dans les DataFrames, pour éviter les conflits de nom. 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'] }) df2 = pd.DataFrame({ 'id': [2, 3, 4], 'ville': ['Lyon', 'Marseille', 'Paris'], 'age': [24, 25, 30] }) # Fusion des DataFrames sur les colonnes 'id' et 'ville' df_merge = pd.merge(df1, df2, on=['id', 'ville']) # Affichage du DataFrame fusionné print(df_merge)
Explication du code :
Importation de la bibliothèque
import pandas as pdCette ligne importe la bibliothèque
pandassous l’aliaspd, permettant la manipulation de données tabulaires.Création des DataFrames
df1 = pd.DataFrame({'id': [1, 2, 3], 'ville': ['Paris', 'Lyon', 'Marseille'], 'nom': ['Alice', 'Bob', 'Charlie']})Ce DataFrame contient trois colonnes :
id,villeetnom. Chaque ligne correspond à une personne identifiée par son ID, sa ville et son nom.df2 = pd.DataFrame({'id': [2, 3, 4], 'ville': ['Lyon', 'Marseille', 'Paris'], 'age': [24, 25, 30]})Le second DataFrame contient également un
idet unevillepour chaque ligne, ainsi qu’un champage.Fusion des DataFrames sur les colonnes 'id' et 'ville'
df_merge = pd.merge(df1, df2, on=['id', 'ville'])Cette ligne réalise une fusion des deux DataFrames en utilisant à la fois les colonnes
idetvillecomme clés de correspondance.La méthode
pd.merge()avec le paramètreon=['id', 'ville']effectue une jointure interne (inner join) sur les paires de valeursid–villeprésentes dans les deux DataFrames.Seules les lignes ayant les mêmes valeurs de
idet devilledans les deux DataFrames sont conservées.Affichage du DataFrame fusionné
print(df_merge)Cette ligne affiche le DataFrame fusionné contenant les colonnes
id,ville,nometagepour les correspondances trouvées.