Panda's: filter toevoegen aan draaitabel
U kunt de volgende basissyntaxis gebruiken om een filtervoorwaarde toe te voegen aan een Panda-draaitabel:
df[df. col1 == ' A ']. pivot_table (index=' col1 ', values=[' col2 ', ' col3 '], aggfunc=' sum ')
In dit specifieke voorbeeld wordt een draaitabel gemaakt die de som van de waarden van col2 en col3 weergeeft, gegroepeerd op col1 .
Het filter vóór de functie pivot_table() geeft aan dat we alleen rijen willen opnemen waarin de waarde in col1 van het oorspronkelijke DataFrame de waarde „A“ heeft.
Het volgende voorbeeld laat zien hoe u deze syntaxis in de praktijk kunt gebruiken.
Voorbeeld: hoe u een filter toevoegt aan de draaitabel van Panda
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', 'C', 'C', 'C', 'C'], ' points ': [4, 4, 2, 8, 9, 5, 5, 7, 8, 8, 4, 3], ' assists ': [2, 2, 5, 5, 4, 7, 5, 3, 9, 8, 4, 4]}) #view DataFrame print (df) team points assists 0 to 4 2 1 to 4 2 2 to 2 5 3 to 8 5 4 B 9 4 5 B 5 7 6 B 5 5 7 B 7 3 8 C 8 9 9 C 8 8 10 C 4 4 11 C 3 4
We kunnen de volgende code gebruiken om een draaitabel in panda’s te maken die de som van de waarden in de punten en hulpkolommen weergeeft, gegroepeerd per team , alleen voor rijen waar het originele DataFrame een waarde heeft in de scorekolom. team gelijk aan “A”:
#create pivot table for rows where team is equal to 'A'
df[df. team == ' A ']. pivot_table (index=' team ', values=[' points ', ' assists '],
aggfunc=' sum ')
assist points
team
At 14 18
Houd er rekening mee dat de draaitabel alleen de waarden van de punten en hulpkolommen samenvat voor rijen waarin team gelijk is aan „A“.
U kunt ook de operatoren & en | gebruiken om een filter toe te passen dat ‘AND’- of ‘OR’-logica gebruikt.
We kunnen bijvoorbeeld de volgende syntaxis gebruiken om een draaitabel te maken die rijen filtert waarbij de waarde in de teamkolom van het oorspronkelijke DataFrame gelijk is aan „A“ of „B“:
#create pivot table for rows where team is equal to 'A' or 'B'
df[( df.team == ' A ') | (df. team == ' B ')]. pivot_table (index=' team ',
values=[' points ', ' assists '],
aggfunc=' sum ')
assist points
team
At 14 18
B 19 26
Houd er rekening mee dat de draaitabel alleen de waarden in de punten- en hulpkolommen samenvat voor rijen waarin team gelijk is aan „A“ of „B“.
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 taken in panda’s kunt uitvoeren:
Panda’s: draaitabel sorteren op waarden in kolom
Panda’s: hoe u een draaitabel maakt met een som van waarden
Panda’s: subtotalen toevoegen aan de draaitabel
Panda’s: kolomnamen in een draaitabel wijzigen