Oft möchten Sie möglicherweise zwei Pandas DataFrames in mehreren Spalten zusammenführen. Glücklicherweise ist dies mit der Funktion pandas merge(), die die folgende Syntax verwendet, einfach zu bewerkstelligen:

pd.merge(df1, df2, left_on=['col1','col2'], right_on = ['col1','col2'])

In diesem Tutorial wird erklärt, wie diese Funktion in der Praxis verwendet wird.

Beispiel 1: Zusammenführen mehrerer Spalten mit unterschiedlichen Namen

Angenommen, wir haben die folgenden zwei Pandas DataFrames:

import pandas as pd

# Erstellen Sie das erste DataFrame und zeigen Sie ihn an
df1 = pd.DataFrame({'a1': [0, 0, 1, 1, 2],
                   'b': [0, 0, 1, 1, 1],
                   'c': [11, 8, 10, 6, 6]})

print(df1)

   a1  b   c
0   0  0  11
1   0  0   8
2   1  1  10
3   1  1   6
4   2  1   6

# Erstellen und Anzeigen des zweiten DataFrames
df2 = pd.DataFrame({'a2': [0, 1, 1, 1, 3],
                   'b': [0, 0, 0, 1, 1],
                   'd': [22, 24, 25, 33, 37]})

print(df2)

   a2  b   d
0   0  0  22
1   1  0  24
2   1  0  25
3   1  1  33
4   3  1  37

Der folgende Code zeigt, wie eine Linksverknüpfung mit mehreren Spalten aus beiden DataFrames ausgeführt wird:

pd.merge(df1, df2, how='left', left_on=['a1', 'b'], right_on = ['a2','b'])


   a1   b   c   a2     d
0   0   0   11  0.0 22.0
1   0   0   8   0.0 22.0
2   1   1   10  1.0 33.0
3   1   1   6   1.0 33.0
4   2   1   6   NaN NaN

Beispiel 2: Zusammenführen mehrerer Spalten mit gleichen Namen

Angenommen, wir haben die folgenden zwei Pandas DataFrames mit denselben Spaltennamen:

import pandas as pd

# DataFrames erstellen
df1 = pd.DataFrame({'a': [0, 0, 1, 1, 2],
                   'b': [0, 0, 1, 1, 1],
                   'c': [11, 8, 10, 6, 6]})

df2 = pd.DataFrame({'a': [0, 1, 1, 1, 3],
                   'b': [0, 0, 0, 1, 1],
                   'd': [22, 24, 25, 33, 37]})

In diesem Fall können wir die Verwendung durch on = [‘a’, ‘b’] vereinfachen, da die Spaltennamen in beiden DataFrames gleich sind:

pd.merge(df1, df2, how='left', on=['a', 'b'])

    a   b   c   d
0   0   0   11  22.0
1   0   0   8   22.0
2   1   1   10  33.0
3   1   1   6   33.0
4   2   1   6   NaN

Zusätzliche Ressourcen

So führen Sie zwei Pandas DataFrames im Index zusammen
So stapeln Sie mehrere Pandas DataFrames

Statistik: Der Weg zur Datenanalyse

* Amazon Affiliate Link


Das könnte Sie auch interessieren: