Come calcolare i quantili per gruppo in pandas
È possibile utilizzare la seguente sintassi di base per calcolare i quantili per gruppo in Panda:
df. groupby (' grouping_variable '). quantile ( .5 )
Gli esempi seguenti mostrano come utilizzare questa sintassi nella pratica.
Esempio 1: calcolare il quantile per gruppo
Supponiamo di avere i seguenti panda DataFrame:
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
Il codice seguente mostra come calcolare il 90° percentile dei valori nella colonna “punti”, raggruppati per la colonna “squadra”:
df. groupby (' team '). quantile ( .90 ) score team 1 6.5 2 4.0
Ecco come interpretare il risultato:
- Il 90° percentile di “punti” per la Squadra 1 è 6,5 .
- Il 90° percentile di “punti” per la Squadra 2 è 4,0 .
Esempio 2: calcolare più quantili per gruppo
Il codice seguente mostra come calcolare più quantili contemporaneamente per gruppo:
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
Ecco come interpretare il risultato:
- Il primo e il terzo quartile dei punteggi della squadra 1 sono rispettivamente 4,0 e 5,0 .
- Il primo e il terzo quartile dei punteggi della squadra 2 sono rispettivamente 2,0 e 3,0 .
Risorse addizionali
I seguenti tutorial spiegano come eseguire altre funzioni comuni nei panda:
Come trovare il valore massimo per gruppo su Pandas
Come contare gli avvistamenti di gruppo nei panda
Come calcolare la media delle colonne in Pandas