Comment regrouper par mois dans Pandas DataFrame (avec exemple)
Vous pouvez utiliser la syntaxe de base suivante pour regrouper les lignes par mois dans un DataFrame pandas :
df.groupby(df.your_date_column.dt.month)['values_column'].sum()
Cette formule particulière regroupe les lignes par date dans your_date_column et calcule la somme des valeurs pour la valeurs_column dans le DataFrame.
Notez que la fonction dt.month() extrait le mois d’une colonne de date dans pandas.
L’exemple suivant montre comment utiliser cette syntaxe dans la pratique.
Exemple : Comment regrouper par mois dans Pandas
Supposons que nous ayons le DataFrame pandas suivant qui montre les ventes réalisées par une entreprise à différentes dates :
import pandas as pd
#create DataFrame
df = pd.DataFrame({'date': pd.date_range(start='1/1/2020', freq='W', periods=10),
'sales': [6, 8, 9, 11, 13, 8, 8, 15, 22, 9],
'returns': [0, 3, 2, 2, 1, 3, 2, 4, 1, 5]})
#view DataFrame
print(df)
date sales returns
0 2020-01-05 6 0
1 2020-01-12 8 3
2 2020-01-19 9 2
3 2020-01-26 11 2
4 2020-02-02 13 1
5 2020-02-09 8 3
6 2020-02-16 8 2
7 2020-02-23 15 4
8 2020-03-01 22 1
9 2020-03-08 9 5
Connexe : Comment créer une plage de dates dans Pandas
On peut utiliser la syntaxe suivante pour calculer la somme des ventes regroupées par mois :
#calculate sum of sales grouped by month
df.groupby(df.date.dt.month)['sales'].sum()
date
1 34
2 44
3 31
Name: sales, dtype: int64
Voici comment interpréter le résultat :
- Le total des ventes réalisées au cours du mois 1 (janvier) était de 34 .
- Le total des ventes réalisées au cours du mois 2 (février) était de 44 .
- Le total des ventes réalisées au cours du mois 3 (mars) était de 31 .
Nous pouvons utiliser une syntaxe similaire pour calculer le maximum des valeurs de ventes regroupées par mois :
#calculate max of sales grouped by month
df.groupby(df.date.dt.month)['sales'].max()
date
1 11
2 15
3 22
Name: sales, dtype: int64
Nous pouvons utiliser une syntaxe similaire pour calculer n’importe quelle valeur que nous aimerions regrouper par la valeur mensuelle d’une colonne de date.
Remarque : Vous pouvez trouver la documentation complète de l’opération GroupBy dans pandas 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 la corrélation par groupe