Comment regrouper par trimestre dans Pandas DataFrame (avec exemple)



Vous pouvez utiliser la syntaxe de base suivante pour regrouper les lignes par trimestre dans un DataFrame pandas :

#convert date column to datetime
df['date'] = pd.to_datetime(df['date'])

#calculate sum of values, grouped by quarter
df.groupby(df['date'].dt.to_period('Q'))['values'].sum()

Cette formule particulière regroupe les lignes par trimestre dans la colonne de date et calcule la somme de la colonne de valeurs dans le DataFrame.

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

Exemple : Comment regrouper par trimestre 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/2022', freq='M', periods=12),
                   'sales': [6, 8, 10, 5, 4, 8, 8, 3, 5, 14, 8, 3]})

#view DataFrame
print(df)

         date  sales
0  2022-01-31      6
1  2022-02-28      8
2  2022-03-31     10
3  2022-04-30      5
4  2022-05-31      4
5  2022-06-30      8
6  2022-07-31      8
7  2022-08-31      3
8  2022-09-30      5
9  2022-10-31     14
10 2022-11-30      8
11 2022-12-31      3

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 trimestre :

#convert date column to datetime and subtract one week
df['date'] = pd.to_datetime(df['date'])

#calculate sum of sales, grouped by quarter
df.groupby(df['date'].dt.to_period('Q'))['sales'].sum()

date
2022Q1    24
2022Q2    17
2022Q3    16
2022Q4    25
Freq: Q-DEC, Name: sales, dtype: int64

Voici comment interpréter le résultat :

  • Au total, 24 ventes ont été réalisées au cours du premier trimestre.
  • Au total, 17 ventes ont été réalisées au cours du deuxième trimestre.
  • Au total, 16 ventes ont été réalisées au cours du troisième trimestre.
  • Au total, 25 ventes ont été réalisées au cours du quatrième trimestre.

Nous pouvons utiliser une syntaxe similaire pour calculer une autre métrique, regroupée par trimestre.

Par exemple, nous pourrions plutôt calculer la valeur maximale des ventes, regroupées par trimestre :

#convert date column to datetime
df['date'] = pd.to_datetime(df['date'])

#calculate max of sales, grouped by quarter
df.groupby(df['date'].dt.to_period('Q'))['sales'].max()

date
2022Q1    10
2022Q2     8
2022Q3     8
2022Q4    14
Freq: Q-DEC, Name: sales, dtype: int64

Voici comment interpréter le résultat :

  • Les ventes maximales sur un mois individuel au cours du premier trimestre étaient de 10 .
  • Les ventes maximales sur un mois individuel au cours du deuxième trimestre étaient de 8 .
  • Les ventes maximales sur un mois individuel au cours du troisième trimestre étaient de 8 .
  • Les ventes maximales sur un mois individuel au cours du quatrième trimestre étaient de 14 .

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 :

Comment regrouper par mois dans Pandas DataFrame
Comment regrouper par semaine dans Pandas DataFrame
Pandas : Comment utiliser Groupby et compter avec condition

Ajouter un commentaire

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