Pandas : calculer la moyenne & Std d’une colonne dans groupby



Vous pouvez utiliser la syntaxe suivante pour calculer la moyenne et l’écart type d’une colonne après avoir utilisé l’opération groupby() dans pandas :

df.groupby(['team'], as_index=False).agg({'points':['mean','std']})

Cet exemple particulier regroupe les lignes d’un DataFrame pandas par la valeur dans la colonne équipe , puis calcule la moyenne et l’écart type des valeurs dans la colonne points .

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

Exemple : Calculer la moyenne et la norme d’une colonne dans Pandas groupby

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

import pandas as pd

#create DataFrame
df = pd.DataFrame({'team': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'C', 'C', 'C'],
                   'points': [12, 15, 17, 17, 19, 14, 15, 20, 24, 28],
                   'assists': [5, 5, 7, 9, 10, 14, 13, 8, 2, 7]})
                            
#view DataFrame
print(df)

  team  points  assists
0    A      12        5
1    A      15        5
2    A      17        7
3    A      17        9
4    B      19       10
5    B      14       14
6    B      15       13
7    C      20        8
8    C      24        2
9    C      28        7

Nous pouvons utiliser la syntaxe suivante pour calculer la moyenne et l’écart type des valeurs de la colonne des points , regroupées par la colonne de l’ équipe :

#calculate mean and standard deviation of points, grouped by team
output = df.groupby(['team'], as_index=False).agg({'points':['mean','std']})

#view results
print(output)

  team points          
         mean       std
0    A  15.25  2.362908
1    B  16.00  2.645751
2    C  24.00  4.000000

À partir du résultat, nous pouvons voir :

  • La valeur moyenne des points de l’équipe A est de 15,25 .
  • L’écart type des points de l’équipe A est de 2,362908 .

Et ainsi de suite.

Nous pouvons également renommer les colonnes afin que le résultat soit plus facile à lire :

#rename columns
output.columns = ['team', 'points_mean', 'points_std']

#view updated results
print(output)

  team  points_mean  points_std
0    A        15.25    2.362908
1    B        16.00    2.645751
2    C        24.00    4.000000

Remarque : Vous pouvez trouver la documentation complète de l’opération pandas groupby() ici .

Ressources additionnelles

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

Comment effectuer une somme GroupBy dans Pandas
Comment utiliser Groupby et Plot dans Pandas
Comment compter les valeurs uniques à l’aide de GroupBy dans Pandas

Ajouter un commentaire

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