Fenêtre glissante avec des fonctions d’agrégation (moyenne, somme, etc.)
L’utilisation d’une fenêtre glissante avec des fonctions d’agrégation comme la moyenne, la somme, ou d’autres opérations statistiques permet d’analyser des séries temporelles ou des séquences de données en appliquant une fonction sur un sous-ensemble des données qui « glisse » à travers l’ensemble. Par exemple, une moyenne mobile calcule la moyenne des valeurs dans une fenêtre fixe qui se déplace le long des données, ce qui permet de lisser les fluctuations et de mieux visualiser les tendances à court terme.
Fonctions :
-
rolling().sum()
La fonction rolling() en combinaison avec des fonctions d'agrégation telles que sum(), mean(), ou std() permet de calculer des statistiques mobiles sur une fenêtre glissante. Elle calcule ces statistiques sur un sous-ensemble de données successives définies par la taille de la fenêtre. Cela est très utile pour analyser des séries temporelles ou pour lissage des données, en particulier lorsqu'on veut observer la tendance ou la variation d'une donnée sur une période donnée.
Importation :
import pandas as pd
Attributs :
Paramètre Description window
Le nombre d'observations à inclure dans chaque fenêtre. Par exemple, window=3
signifie que les calculs seront effectués sur une fenêtre de 3 valeurs successives.aggfunc
La fonction d'agrégation à appliquer. Par exemple, sum()
pour la somme,mean()
pour la moyenne, oustd()
pour l'écart-type.min_periods
Le nombre minimum d'observations non-nulles dans la fenêtre nécessaire pour effectuer le calcul. Par défaut, il est égal à la taille de la fenêtre. axis
L'axe sur lequel effectuer l'opération. Par défaut, c'est 0
pour les lignes.closed
Définit si la fenêtre est fermée à gauche, à droite, ou les deux. Par défaut, la fenêtre est ouverte à droite ( 'right'
).Exemple de code :
import pandas as pd # Création d'un DataFrame exemple data = { 'date': ['2025-01-01', '2025-01-02', '2025-01-03', '2025-01-04', '2025-01-05'], 'ventes': [100, 150, 200, 250, 300] } df = pd.DataFrame(data) # Application de la somme mobile sur une fenêtre glissante de 3 jours df['somme_rolling'] = df['ventes'].rolling(window=3).sum() # Affichage du DataFrame après application de la somme mobile print(df)
Explication du code :
La ligne
import pandas as pd
importe la bibliothèque pandas, renommée ici enpd
pour faciliter son utilisation dans le code.Création d'un DataFrame exemple
Un DataFrame nommé
df
est créé avec les colonnesdate
etventes
. La colonnedate
contient des dates sous forme de chaînes, et la colonneventes
contient des chiffres représentant les ventes associées à chaque date.Application de la somme mobile sur une fenêtre glissante de 3 jours
La méthode
rolling(window=3)
permet d'appliquer une opération de fenêtre glissante sur une série de données. Ici,window=3
spécifie une fenêtre de 3 jours.Ensuite, la méthode
sum()
calcule la somme des valeurs dans cette fenêtre glissante de 3 jours consécutifs. Le résultat est stocké dans la colonnesomme_rolling
du DataFrame, qui montre la somme mobile des ventes sur les 3 jours précédents.Pour les deux premières lignes du DataFrame, la colonne
somme_rolling
contiendra la valeurNaN
, car il n'y a pas assez de données pour calculer une somme sur 3 jours.Affichage du DataFrame après application de la somme mobile
La ligne
print(df)
affiche le DataFrame après l'ajout de la colonnesomme_rolling
, qui contient les sommes mobiles des ventes pour chaque jour, calculées sur une fenêtre glissante de 3 jours.