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)
    Résultat du code

    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 et nom. Ensuite, on définit la colonne id 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 de id 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 identifiants id).

    Les lignes ayant les mêmes index dans df1 et df2 sont fusionnées, ajoutant la colonne age à df1.

    Affichage du DataFrame fusionné

    print(df_joined)

    Cette instruction affiche le résultat final, qui contient les colonnes ville, nom et age avec id comme index.