Comment calculer les quantiles par groupe dans Pandas



Vous pouvez utiliser la syntaxe de base suivante pour calculer les quantiles par groupe dans Pandas :

df.groupby('grouping_variable').quantile(.5)

Les exemples suivants montrent comment utiliser cette syntaxe dans la pratique.

Exemple 1 : calculer le quantile par groupe

Supposons que nous ayons le DataFrame pandas suivant :

import pandas as pd

#create DataFrame 
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 

Le code suivant montre comment calculer le 90e centile des valeurs de la colonne « points », regroupées par la colonne « équipe » :

df.groupby('team').quantile(.90)

	score
team	
1	6.5
2	4.0

Voici comment interpréter le résultat :

  • Le 90e centile des « points » pour l’équipe 1 est de 6,5 .
  • Le 90e centile des « points » pour l’équipe 2 est de 4,0 .

Exemple 2 : Calculer plusieurs quantiles par groupe

Le code suivant montre comment calculer plusieurs quantiles à la fois par groupe :

import pandas as pd

#create DataFrame
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

Voici comment interpréter le résultat :

  • Les premier et troisième quartiles des scores de l’équipe 1 sont respectivement de 4,0 et 5,0 .
  • Les premier et troisième quartiles des scores de l’équipe 2 sont respectivement de 2,0 et 3,0 .

Ressources additionnelles

Les didacticiels suivants expliquent comment exécuter d’autres fonctions courantes dans les pandas :

Comment trouver la valeur maximale par groupe chez Pandas
Comment compter les observations par groupe chez les pandas
Comment calculer la moyenne des colonnes dans Pandas

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *