Pandas : comment calculer la somme cumulée par groupe
Vous pouvez utiliser la syntaxe suivante pour calculer une somme cumulée par groupe dans les pandas :
df['cumsum_col'] = df.groupby(['col1'])['col2'].cumsum()
Cette formule particulière calcule la somme cumulée de col2 , regroupée par col1 , et affiche les résultats dans une nouvelle colonne intitulée cumsum_col .
L’exemple suivant montre comment utiliser cette syntaxe dans la pratique.
Exemple : calculer la somme cumulée par groupe dans Pandas
Supposons que nous ayons le DataFrame pandas suivant qui contient des informations sur les ventes de divers magasins :
import pandas as pd #create DataFrame df = pd.DataFrame({'store': ['A', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'B'], 'sales': [4, 7, 10, 5, 8, 9, 12, 15, 10, 8]}) #view DataFrame print(df) store sales 0 A 4 1 A 7 2 A 10 3 A 5 4 A 8 5 B 9 6 B 12 7 B 15 8 B 10 9 B 8
Nous pouvons utiliser la syntaxe suivante pour calculer la somme cumulée des ventes pour chaque magasin :
#add column that shows cumulative sum of sales by store
df['cumsum_sales'] = df.groupby(['store'])['sales'].cumsum()
#view updated DataFrame
print(df)
store sales cumsum_sales
0 A 4 4
1 A 7 11
2 A 10 21
3 A 5 26
4 A 8 34
5 B 9 9
6 B 12 21
7 B 15 36
8 B 10 46
9 B 8 54
La colonne cumsum_sales affiche les ventes cumulées, regroupées par chaque magasin.
Remarque : Vous pouvez trouver la documentation complète de la fonction cumsum dans pandas ici .
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans les pandas :
Comment additionner des colonnes spécifiques dans Pandas
Comment additionner des colonnes en fonction d’une condition dans Pandas
Comment calculer une somme cumulée inversée chez les pandas