Como calcular quantis por grupo no pandas
Você pode usar a seguinte sintaxe básica para calcular quantis por grupo no Pandas:
df. groupby (' grouping_variable '). quantile ( .5 )
Os exemplos a seguir mostram como usar essa sintaxe na prática.
Exemplo 1: calcule o quantil por grupo
Suponha que temos o seguinte DataFrame do pandas:
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
O código a seguir mostra como calcular o percentil 90 dos valores da coluna “pontos”, agrupados pela coluna “equipe”:
df. groupby (' team '). quantile ( .90 ) score team 1 6.5 2 4.0
Veja como interpretar o resultado:
- O 90º percentil de “pontos” para a Equipe 1 é 6,5 .
- O 90º percentil de “pontos” para a Equipe 2 é 4,0 .
Exemplo 2: Calcular múltiplos quantis por grupo
O código a seguir mostra como calcular vários quantis de uma vez por grupo:
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
Veja como interpretar o resultado:
- O primeiro e terceiro quartis das pontuações da Equipe 1 são 4,0 e 5,0, respectivamente.
- O primeiro e terceiro quartis das pontuações da Equipe 2 são 2,0 e 3,0, respectivamente.
Recursos adicionais
Os tutoriais a seguir explicam como executar outras funções comuns em pandas:
Como encontrar o valor máximo por grupo no Pandas
Como contar avistamentos de grupos em pandas
Como calcular a média das colunas no Pandas