Pandas DataFrame DataFrame.merge()-Funktion
-
Syntax der Funktion
pandas.DataFrame.merge()
: -
Beispiel-Codes:
DataFrame.merge()
Funktion zum Zusammenführen von zweiDataFrames
-
Beispiel-Codes: Setzen Sie den Parameter
how
in dermerge
-Methode, um DataFrame mit verschiedenen Techniken zu verschmelzen -
Beispielcodes: Nur bestimmte Spalten mit der Funktion
DataFrame.merge()
in Pandas zusammenführen -
Beispiel-Codes: Index als Verbindungsschlüssel für das Zusammenführen von DataFrame verwenden
DataFrame.merge()
Funktion
Python Pandas DataFrame.merge()
Funktion verschmilzt DataFrame
oder benannte Series-Objekte.
Syntax der Funktion 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,
)
Parameter
right |
DataFrame oder benannte Serie. Objekt zum Zusammenführen mit |
how |
left , right , inner oder outer . Wie man eine Merge-Operation durchführt |
on |
Etikett oder Liste. Zusammenzuführende Spalten- oder Indexnamen |
left_on |
Etikett oder Liste. Spalten- oder Indexnamen zum Zusammenführen im linken DataFrame |
right_on |
Etikett oder Liste. Spalten- oder Indexnamen zum Zusammenführen im rechten DataFrame |
left_index |
Boolesch. Verwenden Sie den Index von links DataFrame als Verbindungsschlüssel (left_index=True ) |
right_index |
Boolesch. Verwenden Sie den Index aus dem rechten DataFrame als Verbindungsschlüssel (right_index=True ) |
sort |
Boolesch. Sortieren Sie die Verknüpfungsschlüssel in der Ausgabe alphabetisch (sort=True ) |
suffixes |
Suffix, das auf überlappende Spaltennamen in der linken bzw. rechten Seite anzuwenden ist |
copy |
Boolesch. Vermeiden Sie Kopieren für copy=False |
indicator |
fügen Sie der Ausgabe DataFrame eine Spalte namens _merge mit Informationen über die Quelle jeder Zeile hinzu (indicator=True ) und eine Spalte namens string wird der Ausgabe DataFrame hinzugefügt (indicator=string ) |
validate |
Parameter, um zu prüfen, ob die Zusammenführung von einem bestimmten Typ ist. |
Zurück
Es gibt einen DataFrame
zurück, der die gegebenen Objekte zusammenführt.
Beispiel-Codes: DataFrame.merge()
Funktion zum Zusammenführen von zwei 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)
Ausgabe:
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
Es verschmilzt df1
und df2
zu einem einzigen DataFrame
unter Verwendung der inner-join
-Technik von SQL.
Für die inner-join
Methode müssen wir sicherstellen, dass es mindestens eine Spalte gibt, die beiden DataFrames
gemeinsam ist.
Hier verbindet die Funktion merge()
die Zeilen, die die gleichen Werte der gemeinsamen Spalte haben, mit beiden DataFrames
.
Beispiel-Codes: Setzen Sie den Parameter how
in der merge
-Methode, um DataFrame mit verschiedenen Techniken zu verschmelzen
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)
Ausgabe:
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
Es verschmilzt df1
und df2
zu einem einzigen DataFrame
unter Verwendung der Right-Join
-Technik von SQL.
Hier gibt die Funktion merge()
alle Zeilen aus dem rechten DataFrame
zurück. Die Zeilen, die nur im linken DataFrame
vorhanden sind, erhalten jedoch den NaN
-Wert.
In ähnlicher Weise können wir auch left
und outer
Werte des how
-Parameters verwenden.
Beispielcodes: Nur bestimmte Spalten mit der Funktion DataFrame.merge()
in Pandas zusammenführen
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)
Ausgabe:
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
Sie führt nur die Spalte Name
von df1
und df2
zusammen. Da die Standard-Verbindungsmethode inner-join
ist, werden nur die gemeinsamen Zeilen der beiden DataFrame
verbunden. Die Spalte Position
ist beiden DataFrames
gemeinsam und daher Spalten mit zwei Positionen, nämlich Position_x
und Position_y
.
Standardmäßig werden die Suffixe _x
und _y
an den Namen der überlappenden Spalte angehängt. Wir können Suffixe mit dem Parameter Suffixe
angeben.
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)
Ausgabe:
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
Beispiel-Codes: Index als Verbindungsschlüssel für das Zusammenführen von DataFrame verwenden DataFrame.merge()
Funktion
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)
Ausgabe:
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
Es führt die entsprechenden Zeilen zweier DataFrames
ohne Berücksichtigung von Spaltenähnlichkeiten zusammen. Wenn derselbe Spaltenname auf beiden DataFrames
erscheint, werden die Suffixe an die Spaltennamen angehängt und nach der Zusammenführung zu unterschiedlichen Spalten gemacht.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn