Hoe kwantielen per groep in panda's te berekenen
U kunt de volgende basissyntaxis gebruiken om kwantielen per groep in Pandas te berekenen:
df. groupby (' grouping_variable '). quantile ( .5 )
De volgende voorbeelden laten zien hoe u deze syntaxis in de praktijk kunt gebruiken.
Voorbeeld 1: bereken het kwantiel per groep
Stel dat we de volgende panda’s DataFrame hebben:
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': [1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2], ' score ': [3, 4, 4, 5, 5, 8, 1, 2, 2, 3, 3, 5]}) #view first five rows df. head () team score 0 1 3 1 1 4 2 1 4 3 1 5 4 1 5
De volgende code laat zien hoe u het 90e percentiel van de waarden in de kolom „punten“ berekent, gegroepeerd op de kolom „team“:
df. groupby (' team '). quantile ( .90 ) score team 1 6.5 2 4.0
Zo interpreteert u het resultaat:
- Het 90e percentiel van “punten” voor Team 1 is 6,5 .
- Het 90e percentiel van “punten” voor Team 2 is 4,0 .
Voorbeeld 2: Bereken meerdere kwantielen per groep
De volgende code laat zien hoe u meerdere kwantielen tegelijk per groep kunt berekenen:
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': [1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2], ' score ': [3, 4, 4, 5, 5, 8, 1, 2, 2, 3, 3, 5]}) #create functions to calculate 1st and 3rd quartiles def q1(x): return x. quantile ( 0.25 ) def q3(x): return x. quantile ( 0.75 ) #calculate 1st and 3rd quartiles by group vals = {' score ': [q1, q3]} df. groupby (' team '). agg (vals) score q1 q3 team 1 4.0 5.0 2 2.0 3.0
Zo interpreteert u het resultaat:
- Het eerste en derde kwartiel van de scores van team 1 zijn respectievelijk 4,0 en 5,0 .
- Het eerste en derde kwartiel van de scores van Team 2 zijn respectievelijk 2,0 en 3,0 .
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende functies in panda’s kunt uitvoeren:
Zo vind je bij Pandas de maximale waarde per groep
Hoe groepswaarnemingen bij panda’s te tellen
Hoe het gemiddelde van kolommen in Panda’s te berekenen