So stapeln sie mehrere pandas dataframes
Häufig 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 mehrere Beispiele dafür.
Beispiel 1: Stapeln Sie zwei Pandas DataFrames
Der folgende Code zeigt, wie man zwei Panda-DataFrames übereinander „stapelt“ und einen DataFrame erstellt:
import pandas as pd #create two 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]}) #"stack" the two DataFrames together df3 = pd. concat ([df1,df2], ignore_index= True ) #view resulting DataFrame df3 player points 0 to 12 1 B 5 2 C 13 3 D 17 4 E 27 5 F 24 6 G 26 7:27 a.m. 8 I 27 9 D 12
Beispiel 2: Stapeln Sie drei Pandas DataFrames
Mit einem ähnlichen Code können drei Panda-DataFrames übereinander gestapelt werden, um einen DataFrame zu erstellen:
import pandas as pd #create three 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]}) #"stack" the two DataFrames together df4 = pd. concat ([df1,df2, df3], ignore_index= True ) #view resulting DataFrame df4 player points 0 to 12 1 B 5 2 C 13 3 D 17 4 E 27 5 F 24 6 G 26 7:27 a.m. 8 I 27 9 D 12 10K 9 11 L 5 12 M 5 13 N 13 14 O 17
Die Bedeutung vonignore_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 den neuen DataFrame zu erstellen.
Überlegen Sie beispielsweise, was passiert, wenn wir „ignore_index=True“ beim Stapeln der folgenden zwei DataFrames nicht verwenden:
import pandas as pd #create two DataFrames with indices 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]) #stack the two DataFrames together df3 = pd. concat ([df1,df2]) #view resulting DataFrame df3 player points 0 to 12 1 B 5 2 C 13 3 D 17 4 E 27 2 F 24 4G 26 5:27 a.m. 6 I 27 9 D 12
Der resultierende DataFrame behielt seine ursprünglichen Indexwerte beider DataFrames bei.
Daher sollten Sie beim Stapeln von zwei DataFrames im Allgemeinen „ignore_index=True“ verwenden, es sei denn, Sie haben einen bestimmten Grund, die ursprünglichen Indexwerte beizubehalten.
Zusätzliche Ressourcen
Die folgenden Tutorials erklären, wie Sie andere häufige Aufgaben in Pandas ausführen:
So fügen Sie einem Pandas DataFrame eine leere Spalte hinzu
So fügen Sie eine Spalte in einen Pandas DataFrame ein
So exportieren Sie einen Pandas DataFrame nach Excel