Panda's: subtotalen toevoegen aan de draaitabel
Vaak wilt u misschien subtotalen toevoegen aan een Panda-draaitabel.
Gelukkig is dit eenvoudig te doen met behulp van de ingebouwde functies van Panda’s.
Het volgende voorbeeld laat zien hoe u dit doet.
Voorbeeld: Subtotalen toevoegen aan Panda’s draaitabel
Stel dat we het volgende panda’s DataFrame hebben dat informatie bevat over verschillende basketbalspelers:
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'], ' all_star ': ['Y', 'N', 'Y', 'Y', 'N', 'N', 'N', 'Y'], ' points ': [4, 4, 6, 8, 9, 5, 5, 12]}) #view DataFrame print (df) team position all_star points 0 AGY 4 1 AGN 4 2 AFY 6 3 AFY 8 4 BGN 9 5 BFN 5 6 BFN 5 7 BFY 12
We kunnen de volgende code gebruiken om een draaitabel in panda’s te maken die de som van de punten weergeeft voor elke combinatie van team , all_star en position in het DataFrame:
#create pivot table
my_table = pd. pivot_table (df, values=' points ',
index=[' team ', ' all_star '],
columns=' position ',
aggfunc=' sum ')
#view pivot table
print (my_table)
FG position
team all_star
AN NaN 4.0
Y 14.0 4.0
BN 10.0 9.0
Y 12.0 NaN
Laten we nu zeggen dat we een rij met subtotalen willen toevoegen die de subtotaalpunten voor elk team en elke positie weergeeft.
We kunnen hiervoor de volgende syntaxis gebruiken:
#add subtotals row to pivot table
p.d. concat ([
y. append ( y.sum (). rename ((x, ' Total ')))
for x, y in my_table. groupby (level= 0 )
]). append ( my_table.sum (). rename ((' Large ', ' Total ')))
position F G
team all_star
A N NaN 4.0
Y 7.0 4.0
Overall 7.0 8.0
B N 5.0 9.0
Y 12.0 NaN
Total 17.0 9.0
Grand Total 24.0 17.0
We hebben nu twee subtotaalrijen die het subtotaalpunten voor elk team en elke positie weergeven, evenals een eindtotaalrij die het eindtotaal voor elke kolom weergeeft.
Opmerking : u kunt hier de volledige documentatie van de pandas pivot_table() -functie vinden.
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende bewerkingen in panda’s kunt uitvoeren:
Panda’s: hoe u een draaitabel met een aantal waarden maakt
Panda’s: hoe NaN-waarden in draaitabel te vervangen door nullen
Panda’s: Draaitabel naar DataFrame converteren