Fonction Pandas DataFrame DataFrame.merge()

Suraj Joshi 30 janvier 2023
  1. Syntaxe de la fonction pandas.DataFrame.merge() :
  2. Exemples de codes : DataFrame.merge() Fonction pour fusionner deux DataFrames
  3. Exemples de codes : Définir le paramètre how dans la méthode merge pour fusionner des DataFrames en utilisant diverses techniques
  4. Exemples de codes : Fusionner uniquement des colonnes spécifiques en utilisant la fonction DataFrame.merge() dans Pandas
  5. Codes d’exemple : Utiliser l’index comme clé de jointure pour la fusion des DataFrames DataFrame.merge() Fonction
Fonction Pandas DataFrame DataFrame.merge()

Python Pandas DataFrame.merge() function merges DataFrame ou Series nommés.

Syntaxe de la fonction pandas.DataFrame.merge() :

DataFrame.merge(
    right,
    how="inner",
    on=None,
    left_on=None,
    right_on=None,
    left_index=False,
    right_index=False,
    sort=False,
    suffixes="_x",
    "_y",
    copy=True,
    indicator=False,
    validate=None,
)

Paramètres

right DataFrame ou Series. Objet à fusionner avec
how à gauche, à droite, à l’intérieur ou à l’extérieur. Comment effectuer une opération de fusion
on étiquette ou liste. Noms de colonnes ou d’index à fusionner
left_on étiquette ou liste. Noms de colonnes ou d’index à fusionner dans le DataFrame de gauche
right_on étiquette ou liste. Noms de colonnes ou d’index à fusionner dans la DataFrame de droite
left_index Booléen. Utilisez l’index de gauche DataFrame comme clé de jointure(left_index=True)
right_index Booléen. Utilisez l’index de la DataFrame de droite comme clé de jointure(right_index=True)
sort Booléen. Triez les clés de jointure par ordre alphabétique dans la sortie (sort=True)
suffixes Suffixe à appliquer aux noms des colonnes qui se chevauchent, respectivement à gauche et à droite
copy Booléen. Évitez de copier pour copy=False.
indicator ajouter une colonne à la sortie DataFrame appelée _merge avec des informations sur la source de chaque ligne (indicator=True) et une colonne nommée string sera ajoutée à la sortie DataFrame(indicator=string)
validate pour vérifier si la fusion est d’un type spécifique.

Renvoie

Il retourne une DataFrame fusionnant les objets donnés.

Exemples de codes : DataFrame.merge() Fonction pour fusionner deux DataFrames

import pandas as pd

df1 = pd.DataFrame(
    {"Name": ["Suraj", "Zeppy", "Alish", "Sarah"], "Working Hours": [1, 2, 3, 5]}
)
df2 = pd.DataFrame({"Name": ["Suraj", "Zack", "Alish", "Raphel"], "Pay": [5, 6, 7, 8]})

print("1st DataFrame:")
print(df1)
print("2nd DataFrame:")
print(df2)

merged_df = df1.merge(df2)
print("Merged DataFrame:")
print(merged_df)

Production:

1st DataFrame:
    Name  Working Hours
0  Suraj              1
1  Zeppy              2
2  Alish              3
3  Sarah              5
2nd DataFrame:
     Name  Pay
0   Suraj    5
1    Zack    6
2   Alish    7
3  Raphel    8
Merged DataFrame:
    Name  Working Hours  Pay
0  Suraj              1    5
1  Alish              3    7

Il fusionne df1 et df2 en un seul DataFrame en utilisant la technique de inner-joint- de SQL.

Pour la méthode inner-join, nous devons nous assurer qu’il y a au moins une colonne commune aux deux DataFrames.

Ici, la fonction merge() joindra les lignes ayant les mêmes valeurs de la colonne commune aux deux DataFrames.

Exemples de codes : Définir le paramètre how dans la méthode merge pour fusionner des DataFrames en utilisant diverses techniques

import pandas as pd

df1 = pd.DataFrame(
    {"Name": ["Suraj", "Zeppy", "Alish", "Sarah"], "Working Hours": [1, 2, 3, 5]}
)
df2 = pd.DataFrame({"Name": ["Suraj", "Zack", "Alish", "Raphel"], "Pay": [5, 6, 7, 8]})

print("1st DataFrame:")
print(df1)
print("2nd DataFrame:")
print(df2)

merged_df = df1.merge(df2, how="right")
print("Merged DataFrame:")
print(merged_df)

Production:

1st DataFrame:
    Name  Working Hours
0  Suraj              1
1  Zeppy              2
2  Alish              3
3  Sarah              5
2nd DataFrame:
     Name  Pay
0   Suraj    5
1    Zack    6
2   Alish    7
3  Raphel    8
Merged DataFrame:
     Name  Working Hours  Pay
0   Suraj            1.0    5
1   Alish            3.0    7
2    Zack            NaN    6
3  Raphel            NaN   8 

Il fusionne df1 et df2 en un seul DataFrame en utilisant la technique de rejointe à droite de SQL.

Ici, la fonction merge() retourne toutes les lignes de la DataFrame droite. Cependant, les lignes présentes uniquement dans la DataFrame gauche auront la valeur NaN.

De même, nous pouvons aussi utiliser les valeurs left et outer du paramètre how.

Exemples de codes : Fusionner uniquement des colonnes spécifiques en utilisant la fonction DataFrame.merge() dans Pandas

import pandas as pd

df1 = pd.DataFrame(
    {
        "Name": ["Suraj", "Zeppy", "Alish", "Sarah"],
        "Working Hours": [1, 2, 3, 5],
        "Position": ["Salesman", "CEO", "Manager", "Sales Head"],
    }
)
df2 = pd.DataFrame(
    {
        "Name": ["Suraj", "Zack", "Alish", "Raphel"],
        "Pay": [5, 6, 7, 8],
        "Position": ["Salesman", "CEO", "Manager", "Sales Head"],
    }
)

print("1st DataFrame:")
print(df1)
print("2nd DataFrame:")
print(df2)

merged_df = df1.merge(df2, on="Name")
print("Merged DataFrame:")
print(merged_df)

Production:


1st DataFrame:
    Name  Working Hours    Position
0  Suraj              1    Salesman
1  Zeppy              2         CEO
2  Alish              3     Manager
3  Sarah              5  Sales Head
2nd DataFrame:
     Name  Pay    Position
0   Suraj    5    Salesman
1    Zack    6         CEO
2   Alish    7     Manager
3  Raphel    8  Sales Head
Merged DataFrame:
    Name  Working Hours Position_x  Pay Position_y
0  Suraj              1   Salesman    5   Salesman
1  Alish              3    Manager    7    Manager

Il fusionne uniquement la colonne Name de fd1 et df2. Comme la méthode de jointure par défaut est inner-join, seules les lignes communes aux deux DataFrame seront jointes. La colonne Position est commune aux deux DataFrames et donc les colonnes à deux positions, à savoir Position_x et Position_y.

Par défaut, les suffixes _x et _y sont ajoutés au nom de la colonne qui se chevauche. Nous pouvons spécifier les suffixes en utilisant le paramètre suffixes.

df1 = pd.DataFrame(
    {
        "Name": ["Suraj", "Zeppy", "Alish", "Sarah"],
        "Working Hours": [1, 2, 3, 5],
        "Position": ["Salesman", "CEO", "Manager", "Sales Head"],
    }
)
df2 = pd.DataFrame(
    {
        "Name": ["Suraj", "Zack", "Alish", "Raphel"],
        "Pay": [5, 6, 7, 8],
        "Position": ["Salesman", "CEO", "Manager", "Sales Head"],
    }
)

print("1st DataFrame:")
print(df1)
print("2nd DataFrame:")
print(df2)

merged_df = df1.merge(df2, on="Name", suffixes=("_left", "_right"))
print("Merged DataFrame:")
print(merged_df)

Production:

1st DataFrame:
    Name  Working Hours    Position
0  Suraj              1    Salesman
1  Zeppy              2         CEO
2  Alish              3     Manager
3  Sarah              5  Sales Head
2nd DataFrame:
     Name  Pay    Position
0   Suraj    5    Salesman
1    Zack    6         CEO
2   Alish    7     Manager
3  Raphel    8  Sales Head
Merged DataFrame:
    Name  Working Hours Position_left  Pay Position_right
0  Suraj              1      Salesman    5       Salesman
1  Alish              3       Manager    7        Manager

Codes d’exemple : Utiliser l’index comme clé de jointure pour la fusion des DataFrames DataFrame.merge() Fonction

import pandas as pd

df1 = pd.DataFrame(
    {
        "Name": ["Suraj", "Zeppy", "Alish", "Sarah"],
        "Working Hours": [1, 2, 3, 5],
        "Position": ["Salesman", "CEO", "Manager", "Sales Head"],
    }
)
df2 = pd.DataFrame(
    {
        "Name": ["Suraj", "Zack", "Alish", "Raphel"],
        "Pay": [5, 6, 7, 8],
        "Position": ["Salesman", "CEO", "Manager", "Sales Head"],
    }
)

print("1st DataFrame:")
print(df1)
print("2nd DataFrame:")
print(df2)

merged_df = df1.merge(
    df2, left_index=True, right_index=True, suffixes=("_left", "_right")
)
print("Merged DataFrame:")
print(merged_df)

Production:


1st DataFrame:
    Name  Working Hours    Position
0  Suraj              1    Salesman
1  Zeppy              2         CEO
2  Alish              3     Manager
3  Sarah              5  Sales Head
2nd DataFrame:
     Name  Pay    Position
0   Suraj    5    Salesman
1    Zack    6         CEO
2   Alish    7     Manager
3  Raphel    8  Sales Head
Merged DataFrame:
  Name_left  Working Hours Position_left Name_right  Pay Position_right
0     Suraj              1      Salesman      Suraj    5       Salesman
1     Zeppy              2           CEO       Zack    6            CEO
2     Alish              3       Manager      Alish    7        Manager
3     Sarah              5    Sales Head     Raphel    8     Sales Head

Il fusionne les lignes correspondantes de deux DataFrames sans tenir compte des similarités entre les colonnes. Si le même nom de colonne apparaît sur les deux DataFrame, les suffixes sont attachés aux noms des colonnes et font des colonnes différentes après la fusion.

Auteur: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

Article connexe - Pandas DataFrame