Fusion de DataFrames avec merge() sur une colonne commune

La fusion de DataFrames avec merge() permet de combiner deux DataFrames en fonction d’une ou plusieurs colonnes communes. Cela permet d’associer des données de manière similaire à une jointure SQL, avec des options pour spécifier le type de fusion (interne, gauche, droite, extérieure).

Fonctions :

  • merge()

    La fonction pd.merge() permet de fusionner deux DataFrames en se basant sur une colonne ou un ensemble de colonnes communes. C’est l'équivalent d'une jointure SQL, où on peut choisir le type de jointure (interne, externe, gauche, droite) et spécifier la colonne sur laquelle la fusion doit se faire.

    Importation :

    import pandas as pd

    Attributs :

    Paramètre Description
    on La ou les colonnes sur lesquelles la fusion sera effectuée (doit exister dans les deux DataFrames).
    how Le type de jointure :
    • '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. Par exemple : suffixes=('_df1', '_df2').

    Exemple de code :

    import pandas as pd
    
    # Exemple de DataFrames
    df1 = pd.DataFrame({
        'id': [1, 2, 3],
        'nom': ['Alice', 'Bob', 'Charlie']
    })
    
    df2 = pd.DataFrame({
        'id': [2, 3, 4],
        'age': [24, 25, 30]
    })
    
    # Fusion des DataFrames sur la colonne 'id'
    df_merge = pd.merge(df1, df2, on='id')
    
    # Affichage du DataFrame fusionné
    print(df_merge)

    Explication du code :

    1. Création des DataFrames :
      • df1 contient les colonnes id et nom.
      • df2 contient les colonnes id et age.
    2. Fusion avec pd.merge() :
      • Nous utilisons pd.merge(df1, df2, on='id') pour fusionner les deux DataFrames en utilisant la colonne id comme clé commune.
      • Par défaut, merge() utilise une jointure interne (how='inner'), ce qui signifie que seules les lignes avec des valeurs communes pour la colonne id seront conservées.
    3. Affichage : Le DataFrame résultant contient les colonnes id, nom et age, avec les valeurs correspondantes pour les lignes ayant la même valeur de id dans les deux DataFrames.

    📍 Remarques

    • Types de jointures :
      La fonction merge() peut être utilisée pour différents types de jointures :

      • Inner join (par défaut) : Conserve uniquement les lignes où il y a une correspondance entre les colonnes spécifiées (on).
      • Outer join : Garde toutes les lignes des deux DataFrames, avec des valeurs manquantes pour celles qui ne trouvent pas de correspondance dans l'autre DataFrame.
      • Left join : Garde toutes les lignes du DataFrame gauche (df1), même celles qui n'ont pas de correspondance dans le DataFrame droit (df2).
      • Right join : Garde toutes les lignes du DataFrame droit (df2), même celles qui n'ont pas de correspondance dans le DataFrame gauche (df1).
    • Jointure sur plusieurs colonnes : Si vous souhaitez fusionner sur plusieurs colonnes, vous pouvez passer une liste à l'argument on.

    • Renommage des colonnes : Si les deux DataFrames ont des colonnes avec le même nom, vous pouvez ajouter des suffixes pour les différencier.