Comment regrouper par intervalles de 5 minutes chez les pandas



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

df.resample('5min').sum()

Cette formule particulière suppose que l’index de votre DataFrame contient des valeurs datetime et calcule la somme de chaque colonne du DataFrame, regroupée par intervalles de 5 minutes.

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

Connexe : Une introduction à resample() dans les pandas

Exemple : Comment regrouper par intervalles de 5 minutes chez les pandas

Supposons que nous ayons le DataFrame pandas suivant qui montre les ventes réalisées par une entreprise à différentes dates et heures :

import pandas as pd

#create DataFrame
df = pd.DataFrame({'date': pd.date_range(start='1/1/2020', freq='min', periods=12),
                   'sales': [6, 8, 9, 11, 13, 8, 8, 15, 22, 9, 8, 4],
                   'returns': [0, 3, 2, 2, 1, 3, 2, 4, 1, 5, 3, 2]})

#set 'date' column as index
df = df.set_index('date')

#view DataFrame
print(df)

                     sales  returns
date                               
2020-01-01 00:00:00      6        0
2020-01-01 00:01:00      8        3
2020-01-01 00:02:00      9        2
2020-01-01 00:03:00     11        2
2020-01-01 00:04:00     13        1
2020-01-01 00:05:00      8        3
2020-01-01 00:06:00      8        2
2020-01-01 00:07:00     15        4
2020-01-01 00:08:00     22        1
2020-01-01 00:09:00      9        5
2020-01-01 00:10:00      8        3
2020-01-01 00:11:00      4        2

Connexe : Comment créer une plage de dates dans Pandas

Nous pouvons utiliser la syntaxe suivante pour calculer la somme des ventes regroupées par intervalles de 5 minutes :

#calculate sum of sales and returns grouped by 5-minute intervals
df.resample('5min').sum()

                     sales returns
date		
2020-01-01 00:00:00	47	 8
2020-01-01 00:05:00	62	15
2020-01-01 00:10:00	12 	 5

Voici comment interpréter le résultat :

  • Le total des ventes au cours des minutes 0 à 4 était de 47 et le total des retours était de 8 .
  • Le total des ventes au cours des minutes 5 à 9 était de 62 et le total des retours était de 15 .
  • Le total des ventes au cours des minutes 10 à 14 était de 1 2 et le total des retours était de 5 .

Nous pouvons utiliser une syntaxe similaire pour calculer le maximum des valeurs de ventes et des valeurs de retours, regroupées par intervalles de 5 minutes :

#calculate max of sales and max of returns grouped by 5-minute intervals
df.resample('5min').max()

	             sales  returns
date		
2020-01-01 00:00:00	13	  3
2020-01-01 00:05:00	22	  5
2020-01-01 00:10:00	8	  3

Nous pouvons utiliser une syntaxe similaire pour calculer n’importe quelle valeur que nous souhaitons regroupée par intervalles de 5 minutes.

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres opérations courantes dans les pandas :

Comment se regrouper par jour chez 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 *