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

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert