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, ou std() 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)
    Résultat du code

    Explication du code :

    La ligne import pandas as pd importe la bibliothèque pandas, renommée ici en pd pour faciliter son utilisation dans le code.

    Création d'un DataFrame exemple

    Un DataFrame nommé df est créé avec les colonnes date et ventes. La colonne date contient des dates sous forme de chaînes, et la colonne ventes 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 colonne somme_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 valeur NaN, 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 colonne somme_rolling, qui contient les sommes mobiles des ventes pour chaque jour, calculées sur une fenêtre glissante de 3 jours.