Décalage des valeurs avec shift()

Le décalage des valeurs avec shift() permet de décaler les données d’un DataFrame ou d’une série sur une ou plusieurs positions, ce qui est utile pour créer des variables temporelles (par exemple, les valeurs précédentes ou suivantes dans une série chronologique).

Fonctions :

  • shift()

    La fonction shift() de Pandas permet de décaler les valeurs d'une colonne ou d'un DataFrame sur un certain nombre de lignes. Cela est souvent utilisé dans l'analyse des séries temporelles ou dans des contextes où vous devez comparer les valeurs d'une colonne à une valeur précédente ou suivante. Par défaut, shift(1) décale les valeurs d'une colonne d'une ligne vers le bas (ou vers le haut si un nombre négatif est utilisé). Cette fonction est utile pour calculer des différences entre les valeurs consécutives, créer des variables de décalage ou effectuer des calculs de type "rolling".

    Importation :

    import pandas as pd

    Attributs :

    Paramètre Description
    periods Le nombre de périodes (lignes) à décaler. Par défaut, c'est 1. Utilisez une valeur positive pour un décalage vers le bas, ou une valeur négative pour un décalage vers le haut.
    fill_value Valeur à utiliser pour remplir les valeurs manquantes générées par le décalage. Par défaut, c'est NaN.
    axis L'axe sur lequel appliquer le décalage. Par défaut, c'est l'axe des lignes (axis=0).

    Exemple de code :

    import pandas as pd
    
    # Création d'un DataFrame exemple
    data = {
        'date': ['2025-01-01', '2025-01-02', '2025-01-03'],
        'ventes': [100, 150, 200]
    }
    
    df = pd.DataFrame(data)
    
    # Décalage des valeurs de la colonne 'ventes' d'une ligne vers le bas
    df['ventes_decalees'] = df['ventes'].shift(1)
    
    # Affichage du DataFrame après le décalage
    print(df)

    Explication du code :

    1. Décalage des valeurs d'une colonne :
      La fonction shift(1) décale les valeurs de la colonne spécifiée (ici 'colonne') d'une ligne vers le bas. Cela signifie que chaque ligne dans la nouvelle colonne ('colonne_decalee') contient la valeur de la ligne précédente de la colonne 'colonne'.

    2. Résultat attendu :
      La première ligne de la colonne décalée contiendra une valeur NaN car il n'y a pas de valeur précédente à déplacer. Les autres lignes contiendront les valeurs décalées de la colonne d'origine.

     

    🔹 Remarques pratiques

    • Utilisation dans les séries temporelles :
      Le décalage est très couramment utilisé dans les séries temporelles pour comparer des valeurs à des moments précédents, comme dans les calculs de rendements financiers ou de différences de prix.

    • Calcul des différences :
      Si vous souhaitez calculer la différence entre les valeurs successives dans une colonne, vous pouvez soustraire la colonne décalée de la colonne d'origine.

    • Gestion des valeurs manquantes :
      Les valeurs de la première ligne, après un décalage vers le bas, seront toujours NaN, sauf si vous utilisez l'argument fill_value pour les remplir avec une autre valeur.