So stapeln Sie mehrere Pandas DataFrames

Von Fabian
Kategorie: Python
Lesezeit: 3 Minuten

Oft möchten Sie möglicherweise zwei oder mehr Pandas DataFrames stapeln. Glücklicherweise ist dies mit der Funktion pandas concat() einfach zu bewerkstelligen.

Dieses Tutorial zeigt einige Beispiele dafür.

Beispiel 1: Stapeln Sie zwei Pandas DataFrames

Der folgende Code zeigt, wie zwei Pandas DataFrames übereinander gestapelt und ein DataFrame erstellt werden:

import pandas as pd

# Erstellen Sie zwei DataFrames
df1 = pd.DataFrame({'player': ['A', 'B', 'C', 'D', 'E'],
                    'points':[12, 5, 13, 17, 27]})

df2 = pd.DataFrame({'player': ['F', 'G', 'H', 'I', 'J'],
                    'points':[24, 26, 27, 27, 12]})

# "stapeln" Sie die beiden DataFrames
df3 = pd.concat([df1,df2], ignore_index=True)

# Resultierendes DataFrame anzeigen
df3

player  points
0   A   12
1   B   5
2   C   13
3   D   17
4   E   27
5   F   24
6   G   26
7   H   27
8   I   27
9   J   12

Beispiel 2: Stapeln Sie drei Pandas DataFrames

Ähnlicher Code kann verwendet werden, um drei Pandas DataFrames zu stapeln und ein DataFrame zu erstellen:

import pandas as pd

# Erstellen Sie zwei DataFrames
df1 = pd.DataFrame({'player': ['A', 'B', 'C', 'D', 'E'],
                    'points':[12, 5, 13, 17, 27]})

df2 = pd.DataFrame({'player': ['F', 'G', 'H', 'I', 'J'],
                    'points':[24, 26, 27, 27, 12]})

df3 = pd.DataFrame({'player': ['K', 'L', 'M', 'N', 'O'],
                    'points':[9, 5, 5, 13, 17]})

# "stapeln" Sie die beiden DataFrames
df4 = pd.concat([df1,df2, df3], ignore_index=True)

# Resultierendes DataFrame anzeigen
df4

player  points
0   A   12
1   B   5
2   C   13
3   D   17
4   E   27
5   F   24
6   G   26
7   H   27
8   I   27
9   J   12
10  K   9
11  L   5
12  M   5
13  N   13
14  O   172

Die Bedeutung von ignore_index

Beachten Sie, dass wir in den vorherigen Beispielen ignore_index = True verwendet haben. Dies weist Pandas an, die Indexnummern in jedem DataFrame zu ignorieren und einen neuen Index im Bereich von 0 bis n-1 für das neue DataFrame zu erstellen.

Überlegen Sie beispielsweise, was passiert, wenn wir beim Stapeln der folgenden beiden DataFrames nicht ignore_index = True verwenden:

import pandas as pd

#Erstellen Sie zwei DataFrames mit Indizes
df1 = pd.DataFrame({'player': ['A', 'B', 'C', 'D', 'E'],
                    'points':[12, 5, 13, 17, 27]},
                    index=[0, 1, 2, 3, 4])

df2 = pd.DataFrame({'player': ['F', 'G', 'H', 'I', 'J'],
                    'points':[24, 26, 27, 27, 12]},
                    index=[2, 4, 5, 6, 9])

#stapeln Sie die beiden DataFrames
df3 = pd.concat([df1,df2])

#Resultierendes DataFrame anzeigen
df3

player  points
0   A   12
1   B   5
2   C   13
3   D   17
4   E   27
2   F   24
4   G   26
5   H   27
6   I   27
9   J   12

Der resultierende DdataFrame behielt seine ursprünglichen Indexwerte aus den beiden DataFrames bei. Daher sollten Sie beim Stapeln von zwei DataFrames normalerweise ignore_index = True verwenden, es sei denn, Sie haben einen bestimmten Grund, die ursprünglichen Indexwerte beizubehalten.

Zusätzliche Ressourcen

So fügen Sie eine Spalte in einen Pandas DataFrame ein
So exportieren Sie einen Pandas DataFrame nach Excel

Statistik: Der Weg zur Datenanalyse

* Amazon Affiliate Link


Das könnte Sie auch interessieren: