Pandas : comment calculer le pourcentage du total au sein d’un groupe



Vous pouvez utiliser la syntaxe suivante pour calculer le pourcentage d’un total au sein des groupes de pandas :

df['values_var'] / df.groupby('group_var')['values_var'].transform('sum')

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

Exemple : Calculer le pourcentage du total au sein du groupe

Supposons que nous ayons le DataFrame pandas suivant qui montre les points marqués par les basketteurs de différentes équipes :

import pandas as pd

#create DataFrame
df = pd.DataFrame({'team': ['A', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'B'],
                   'points': [12, 29, 34, 14, 10, 11, 7, 36, 34, 22]})

#view DataFrame
print(df)

  team  points
0    A      12
1    A      29
2    A      34
3    A      14
4    A      10
5    B      11
6    B       7
7    B      36
8    B      34
9    B      22

Nous pouvons utiliser la syntaxe suivante pour créer une nouvelle colonne dans le DataFrame qui affiche le pourcentage du total des points marqués, regroupés par équipe :

#calculate percentage of total points scored grouped by team
df['team_percent'] = df['points'] / df.groupby('team')['points'].transform('sum')

#view updated DataFrame
print(df)

  team  points  team_percent
0    A      12      0.121212
1    A      29      0.292929
2    A      34      0.343434
3    A      14      0.141414
4    A      10      0.101010
5    B      11      0.100000
6    B       7      0.063636
7    B      36      0.327273
8    B      34      0.309091
9    B      22      0.200000

La colonne team_percent indique le pourcentage du total de points marqués par ce joueur au sein de son équipe.

Par exemple, les joueurs de l’équipe A ont marqué un total de 99 points.

Ainsi, le joueur de la première ligne du DataFrame qui a marqué 12 points a marqué un total de 12/99 = 12,12% du total des points de l’équipe A.

De même, le joueur de la deuxième ligne du DataFrame qui a marqué 29 points a marqué un total de 29/99 = 29,29% du total des points de l’équipe A.

Et ainsi de suite.

Remarque : Vous pouvez trouver la documentation complète de la fonction GroupBy ici .

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 le mode 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 *