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