Comment regrouper par jour dans Pandas DataFrame (avec exemple)



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

df.groupby(df.your_date_column.dt.day)['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.day() extrait le jour d’une colonne de date dans pandas.

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

Exemple : Comment regrouper par jour chez les 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='8h', 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-01 00:00:00      6        0
1 2020-01-01 08:00:00      8        3
2 2020-01-01 16:00:00      9        2
3 2020-01-02 00:00:00     11        2
4 2020-01-02 08:00:00     13        1
5 2020-01-02 16:00:00      8        3
6 2020-01-03 00:00:00      8        2
7 2020-01-03 08:00:00     15        4
8 2020-01-03 16:00:00     22        1
9 2020-01-04 00:00:00      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 jour :

#calculate sum of sales grouped by day
df.groupby(df.date.dt.day)['sales'].sum()

date
1    23
2    32
3    45
4     9
Name: sales, dtype: int64

Voici comment interpréter le résultat :

  • Le total des ventes réalisées au 1er janvier était de 23 .
  • Le total des ventes réalisées le 2 janvier était de 32 .
  • Le total des ventes réalisées le 3 janvier était de 45 .
  • Le total des ventes réalisées le 4 janvier était de 9 .

Nous pouvons utiliser une syntaxe similaire pour calculer le maximum des valeurs de ventes regroupées par mois :

#calculate max of sales grouped by day
df.groupby(df.date.dt.day)['sales'].max()

date
1     9
2    13
3    22
4     9
Name: sales, dtype: int64

Nous pouvons utiliser une syntaxe similaire pour calculer n’importe quelle valeur que nous aimerions regrouper par la valeur quotidienne 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 :

Comment regrouper par semaine chez les pandas
Comment regrouper par mois chez Pandas
Comment regrouper par trimestre dans Pandas

Ajouter un commentaire

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