Pandas DataFrame DataFrame.merge()-Funktion

Suraj Joshi 30 Januar 2023
  1. Syntax der Funktion pandas.DataFrame.merge():
  2. Beispiel-Codes: DataFrame.merge() Funktion zum Zusammenführen von zwei DataFrames
  3. Beispiel-Codes: Setzen Sie den Parameter how in der merge-Methode, um DataFrame mit verschiedenen Techniken zu verschmelzen
  4. Beispielcodes: Nur bestimmte Spalten mit der Funktion DataFrame.merge() in Pandas zusammenführen
  5. Beispiel-Codes: Index als Verbindungsschlüssel für das Zusammenführen von DataFrame verwenden DataFrame.merge() Funktion
Pandas DataFrame 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 avatar Suraj Joshi avatar

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

LinkedIn

Verwandter Artikel - Pandas DataFrame