Fonction Pandas DataFrame DataFrame.merge()
-
Syntaxe de la fonction
pandas.DataFrame.merge()
: -
Exemples de codes :
DataFrame.merge()
Fonction pour fusionner deuxDataFrames
-
Exemples de codes : Définir le paramètre
how
dans la méthodemerge
pour fusionner des DataFrames en utilisant diverses techniques -
Exemples de codes : Fusionner uniquement des colonnes spécifiques en utilisant la fonction
DataFrame.merge()
dans Pandas -
Codes d’exemple : Utiliser l’index comme clé de jointure pour la fusion des DataFrames
DataFrame.merge()
Fonction
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.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn