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 pd
Attributs :
Paramètre Description on
Une 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_on
Spé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_on
Spé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
).suffixes
Un 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 pd
Cette ligne importe la bibliothèque
pandas
sous 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
,ville
etnom
. 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
id
et uneville
pour 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
id
etville
comme 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
–ville
présentes dans les deux DataFrames.Seules les lignes ayant les mêmes valeurs de
id
et deville
dans les deux DataFrames sont conservées.Affichage du DataFrame fusionné
print(df_merge)
Cette ligne affiche le DataFrame fusionné contenant les colonnes
id
,ville
,nom
etage
pour les correspondances trouvées.