Pandy: jak utworzyć tabelę przestawną z sumą wartości
Możesz użyć następującej podstawowej składni, aby utworzyć tabelę przestawną w pandach, która wyświetla sumę wartości w określonych kolumnach:
p.d. pivot_table (df, values=' col1 ', index=' col2 ', columns=' col3 ', aggfunc=' sum ')
Poniższy przykład pokazuje, jak zastosować tę składnię w praktyce.
Przykład: utwórz tabelę przestawną Pandy z sumą wartości
Załóżmy, że mamy następującą ramkę danych pand, która zawiera informacje o różnych koszykarzach:
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'], ' position ': ['G', 'G', 'F', 'F', 'G', 'F', 'F', 'F'], ' points ': [4, 4, 6, 8, 9, 5, 5, 12]}) #view DataFrame print (df) team position points 0 AG 4 1 GA 4 2 AF 6 3AF 8 4 BG 9 5 BF 5 6 BF 5 7 BF 12
Poniższy kod pokazuje, jak utworzyć tabelę przestawną w pandach, która wyświetla sumę wartości „punktowych” dla każdego „zespołu” i „pozycji” w DataFrame:
#create pivot table
df_pivot = pd. pivot_table (df, values=' points ', index=' team ', columns=' position ',
aggfunc=' sum ')
#view pivot table
print (df_pivot)
FG position
team
At 14 8
B 22 9
Z wyniku możemy zobaczyć:
- Zawodnicy drużyny A na pozycji F zdobyli łącznie 14 punktów.
- Zawodnicy drużyny A na pozycji G zdobyli łącznie 8 punktów.
- Zawodnicy Drużyny B na pozycji F zdobyli łącznie 22 punkty.
- Zawodnicy Drużyny B na pozycji G zdobyli łącznie 9 punktów.
Zauważ, że możemy również użyć argumentu marginesów , aby wyświetlić sumy marginesów w tabeli przestawnej:
#create pivot table with margins
df_pivot = pd. pivot_table (df, values=' points ', index=' team ', columns=' position ',
aggfunc=' sum ', margins= True , margins_name=' Sum ')
#view pivot table
print (df_pivot)
position FG Sum
team
A 14 8 22
B 22 9 31
Total 36 17 53
W tabeli przestawnej wyświetlane są teraz sumy wierszy i kolumn.
Uwaga : pełną dokumentację funkcji obrotowej pandy() można znaleźć tutaj .
Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak wykonywać inne typowe operacje na pandach:
Pandy: Jak zmienić kształt DataFrame z długiej na szeroką
Pandy: Jak zmienić kształt ramki danych z szerokiej na długą
Pandy: jak grupować i agregować w wielu kolumnach