Come impilare più dataframes pandas
Spesso potresti voler impilare due o più DataFrames Panda. Fortunatamente, questo è facile da fare utilizzando la funzione pandas concat() .
Questo tutorial mostra diversi esempi di come eseguire questa operazione.
Esempio 1: impilare due dataframe Pandas
Il codice seguente mostra come “impilare” due DataFrame panda uno sopra l’altro e creare un DataFrame:
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
Esempio 2: impilare tre DataFrames Pandas
Un codice simile può essere utilizzato per impilare tre DataFrame panda uno sopra l’altro per creare un DataFrame:
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
L’importanza di ignore_index
Tieni presente che negli esempi precedenti abbiamo utilizzato ignore_index=True .
Questo dice ai panda di ignorare i numeri di indice in ciascun DataFrame e di creare un nuovo indice compreso tra 0 e n-1 per il nuovo DataFrame.
Ad esempio, considera cosa succede quando non utilizziamo ignore_index=True quando si impilano i seguenti due 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
Il DataFrame risultante ha mantenuto i suoi valori di indice originali da entrambi i DataFrame.
Quindi dovresti generalmente usare ignore_index=True quando impila due DataFrame a meno che tu non abbia un motivo specifico per mantenere i valori dell’indice originale.
Risorse addizionali
I seguenti tutorial spiegano come eseguire altre attività comuni in Panda:
Come aggiungere una colonna vuota a un DataFrame Pandas
Come inserire una colonna in un DataFrame Pandas
Come esportare un DataFrame Pandas in Excel