Jak układać wiele ramek danych pand
Często możesz chcieć ułożyć dwie lub więcej ramek danych pand. Na szczęście można to łatwo zrobić za pomocą funkcji pandas concat() .
W tym samouczku przedstawiono kilka przykładów, jak to zrobić.
Przykład 1: Ułóż dwie ramki danych Pandy
Poniższy kod pokazuje, jak „ułożyć” dwie ramki DataFrame panda jedna na drugiej i utworzyć ramkę 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
Przykład 2: Ułóż trzy ramki danych Pandy
Podobnego kodu można użyć do ułożenia trzech ramek DataFrame panda jedna na drugiej w celu utworzenia ramki 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
Znaczenie ignorowania_indeksu
Zauważ, że w poprzednich przykładach użyliśmy ignorowania_index=True .
Mówi to pandom, aby zignorowały numery indeksów w każdej ramce DataFrame i utworzyły dla nowej ramki DataFrame nowy indeks z zakresu od 0 do n-1.
Rozważmy na przykład, co się stanie, jeśli nie użyjemy ignorowania_index=True podczas układania w stos następujących dwóch ramek danych:
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
Powstała DataFrame zachowała swoje oryginalne wartości indeksów z obu DataFrame.
Dlatego generalnie powinieneś używać ignorowania_index=True podczas układania w stos dwóch ramek danych, chyba że masz konkretny powód, aby zachować oryginalne wartości indeksu.
Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w Pandach:
Jak dodać pustą kolumnę do ramki danych Pandas
Jak wstawić kolumnę do ramki danych Pandas
Jak wyeksportować ramkę danych Pandas do programu Excel