Oft möchten Sie möglicherweise zwei Pandas DataFrames anhand ihrer Indizes zusammenführen. Bei Pandas gibt es drei Möglichkeiten:

1. Verwenden Sie join: Standardmäßig wird ein Left Join ausgeführt.

df1.join(df2)

2. Verwenden Sie merge. Standardmäßig führt dies einen Inner Join durch.

pd.merge(df1, df2, left_index=True, right_index=True)

3. Verwenden Sie concat. Standardmäßig führt dies einen Outer Join durch.

pd.concat([df1, df2], axis=1)

Die folgenden Beispiele veranschaulichen, wie jede dieser Funktionen auf den folgenden beiden Pandas-DataFrames verwendet wird:

import pandas as pd

#Erstellen Sie das erste DataFrame
df1 = pd.DataFrame({'rating': [90, 85, 82, 88, 94, 90, 76, 75],
                   'points': [25, 20, 14, 16, 27, 20, 12, 15]},
                   index=list('abcdefgh'))

print(df1)

   rating  points
a      90      25
b      85      20
c      82      14
d      88      16
e      94      27
f      90      20
g      76      12
h      75      15

#Erstellen Sie das zweite DataFrame
df2 = pd.DataFrame({'assists': [5, 7, 7, 8, 5, 7],
                   'rebounds': [11, 8, 10, 6, 6, 9]},
                   index=list('acdgmn'))           

print(df2)

   assists  rebounds
a        5        11
c        7         8
d        7        10
g        8         6
m        5         6
n        7         9

Beispiel 1: Zusammenführen des DataFrames mithilfe von Join

Der folgende Code zeigt, wie Sie mit join() die beiden DataFrames zusammenführen:

df1.join(df2)

        rating  points  assists rebounds
a   90  25  5.0 11.0
b   85  20  NaN NaN
c   82  14  7.0 8.0
d   88  16  7.0 10.0
e   94  27  NaN NaN
f   90  20  NaN NaN
g   76  12  8.0 6.0
h   75  15  NaN NaN

Die Funktion join() führt standardmäßig einen Left Join durch, sodass jeder der Indizes im ersten DataFrame beibehalten wird.

Beispiel 2: Zusammenführen des DataFrames mithilfe von Merge

Der folgende Code zeigt, wie Sie mit merge() die beiden DataFrames zusammenführen:

pd.merge(df1, df2, left_index=True, right_index=True)
    rating  points  assists rebounds
a   90  25  5   11
c   82  14  7   8
d   88  16  7   10
g   76  12  8   6

Die Funktion merge() führt standardmäßig einen Inner Join durch, sodass nur die Indizes beibehalten werden, die in beiden DataFrames angezeigt werden.

Beispiel 3: Zusammenführen des DataFrames mit Concat

Der folgende Code zeigt, wie Sie mit concat() die beiden DataFrames zusammenführen:

pd.concat([df1, df2], axis=1)

        rating  points  assists rebounds
a   90.0    25.0    5.0 11.0
b   85.0    20.0    NaN NaN
c   82.0    14.0    7.0 8.0
d   88.0    16.0    7.0 10.0
e   94.0    27.0    NaN NaN
f   90.0    20.0    NaN NaN
g   76.0    12.0    8.0 6.0
h   75.0    15.0    NaN NaN
m   NaN NaN 5.0 6.0
n   NaN NaN 7.0 9.0

Die Funktion concat() führt standardmäßig einen Outer Join durch, sodass jeder Indexwert aus jedem DataFrame beibehalten wird.

Zusätzliche Ressourcen

So stapeln Sie mehrere Pandas DataFrames
So fügen Sie eine Spalte in einen Pandas DataFrame ein

Statistik: Der Weg zur Datenanalyse

* Amazon Affiliate Link


Das könnte Sie auch interessieren: