Hoe meerdere panda's dataframes te stapelen
Vaak wilt u misschien twee of meer panda’s DataFrames stapelen. Gelukkig is dit eenvoudig te doen met de pandas concat() functie.
Deze tutorial toont verschillende voorbeelden van hoe u dit kunt doen.
Voorbeeld 1: Stapel twee Panda’s DataFrames
De volgende code laat zien hoe u twee panda DataFrames op elkaar kunt „stapelen“ en een DataFrame kunt maken:
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
Voorbeeld 2: Stapel drie Panda’s DataFrames
Soortgelijke code kan worden gebruikt om drie panda DataFrames op elkaar te stapelen om een DataFrame te creëren:
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
Het belang van negeer_index
Merk op dat we in de vorige voorbeelden negeer_index=True gebruikten.
Dit vertelt panda’s dat ze de indexnummers in elk DataFrame moeten negeren en een nieuwe index moeten maken, variërend van 0 tot n-1 voor het nieuwe DataFrame.
Bedenk bijvoorbeeld wat er gebeurt als we negeer_index=True niet gebruiken bij het stapelen van de volgende twee DataFrames:
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
Het resulterende DataFrame behield de oorspronkelijke indexwaarden van beide DataFrames.
U moet dus doorgaans negeren_index=True gebruiken bij het stapelen van twee DataFrames, tenzij u een specifieke reden hebt om de oorspronkelijke indexwaarden te behouden.
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken in Pandas kunt uitvoeren:
Hoe u een lege kolom toevoegt aan een Pandas DataFrame
Hoe u een kolom invoegt in een Pandas DataFrame
Hoe een Pandas DataFrame naar Excel te exporteren