Pandas : comment utiliser décrire() par groupe



Vous pouvez utiliser la fonction décrire() pour générer des statistiques descriptives pour les variables dans un DataFrame pandas.

Vous pouvez utiliser la syntaxe de base suivante pour utiliser la fonction décrire() avec la fonction groupby() dans les pandas :

df.groupby('group_var')['values_var'].describe()

L’exemple suivant montre comment utiliser cette syntaxe dans la pratique.

Exemple : utilisation describe() par Group dans Pandas

Supposons que nous ayons le DataFrame pandas suivant qui contient des informations sur les joueurs de basket-ball de deux équipes différentes :

import pandas as pd

#create DataFrame
df = pd.DataFrame({'team': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
                   'points': [8, 12, 14, 14, 15, 22, 27, 24],
                   'assists':[2, 2, 3, 5, 7, 6, 8, 12]})

#view DataFrame
print(df)

  team  points  assists
0    A       8        2
1    A      12        2
2    A      14        3
3    A      14        5
4    B      15        7
5    B      22        6
6    B      27        8
7    B      24       12

Nous pouvons utiliser la fonction décrire() avec la fonction groupby() pour résumer les valeurs dans la colonne des points pour chaque équipe :

#summarize points by team
df.groupby('team')['points'].describe()

	count	mean	std	        min	25%	50%	75%	max
team								
A	4.0	12.0	2.828427	8.0	11.00	13.0	14.00	14.0
B	4.0	22.0	5.099020	15.0	20.25	23.0	24.75	27.0

À partir du résultat, nous pouvons voir les valeurs suivantes pour la variable de points pour chaque équipe :

  • compter (nombre d’observations)
  • moyenne (valeur moyenne des points)
  • std (écart type des valeurs de points)
  • min (valeur minimale des points)
  • 25 % (25e centile des points)
  • 50 % (50e centile (c’est-à-dire médiane) des points)
  • 75 % (75e percentile des points)
  • max (valeur maximale de points)

Si vous souhaitez que les résultats soient affichés au format DataFrame, vous pouvez utiliser l’argument reset_index() :

#summarize points by team
df.groupby('team')['points'].describe().reset_index()

        team	count	mean	std	        min	25%	50%	75%	max
0	A	4.0	12.0	2.828427	8.0	11.00	13.0	14.00	14.0
1	B	4.0	22.0	5.099020	15.0	20.25	23.0	24.75	27.0

La variable team est désormais une colonne dans le DataFrame et les valeurs d’index sont 0 et 1.

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres opérations courantes dans les pandas :

Pandas : comment calculer la somme cumulée par groupe
Pandas : comment compter les valeurs uniques par groupe
Pandas : comment calculer la corrélation par groupe

Ajouter un commentaire

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