Indexer un DataFrame par une colonne de dates

Indexer un DataFrame par une colonne de dates signifie définir une colonne contenant des dates comme index pour faciliter l’accès et les opérations basées sur le temps, comme la sélection par période ou le resampling.

Fonctions :

  • df.set_index('date', inplace=True)

    La fonction set_index() de Pandas permet de définir une ou plusieurs colonnes d'un DataFrame comme index. Dans ce cas, en spécifiant la colonne 'date', nous transformons cette colonne en l'index du DataFrame. Cela est particulièrement utile pour travailler avec des séries temporelles, car cela permet de faciliter l'accès, le filtrage et les calculs basés sur les dates. En définissant l'index à une colonne de dates, vous pouvez utiliser des fonctionnalités avancées telles que le découpage temporel ou la resampling (rééchantillonnage).

    Importation :

    import pandas as pd

    Attributs :

    Paramètre Description
    keys La ou les colonnes à définir comme index. Dans ce cas, il s'agit de la colonne 'date'.
    inplace Si True, l'opération est effectuée directement sur le DataFrame sans renvoyer de nouvel objet. Par défaut, c'est False, ce qui signifie que le DataFrame original n'est pas modifié et que l'opération renvoie une copie avec le nouvel index.
    drop Si True, la colonne utilisée comme index est supprimée du DataFrame. Par défaut, elle est conservée.
    append Si True, la nouvelle colonne devient un index supplémentaire, sans remplacer les index existants. Par défaut, c'est False.

    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)
    
    # Avant le changement d'index
    print("Avant :\n", df)
    
    # Indexation du DataFrame par la colonne 'date'
    df.set_index('date', inplace=True)
    
    # Après le changement d'index
    print("\nAprès :\n", df)

    Explication du code :

    1. DataFrame d'origine :
      Le DataFrame d'origine contient une colonne de dates sous forme d'une colonne ordinaire.

    2. Définir la colonne 'date' comme index :
      La fonction df.set_index('date', inplace=True) transforme la colonne 'date' en l'index du DataFrame. Cela signifie que chaque ligne du DataFrame sera indexée par sa valeur de date. En utilisant inplace=True, cette opération modifie directement le DataFrame sans créer de copie.

    3. Résultat :
      Après l'application de cette fonction, la colonne 'date' devient l'index du DataFrame, et les autres colonnes restent inchangées. Cela permet de profiter de toutes les fonctionnalités des index, telles que le filtrage basé sur des dates ou le rééchantillonnage des données temporelles.


    🔹 Remarques pratiques

    • Optimisation pour les séries temporelles :
      Indexer par une colonne de dates est particulièrement avantageux lorsque vous travaillez avec des séries temporelles. Cela vous permet d'exploiter des méthodes spécifiques à l'index temporel de Pandas, comme resample() pour rééchantillonner les données sur des périodes spécifiques (mensuel, quotidien, etc.).

    • Accès rapide aux données :
      Une fois l'index défini, l'accès aux données est beaucoup plus rapide. Par exemple, vous pouvez facilement filtrer les données pour une plage de dates, ou rechercher rapidement des valeurs par date.

    • Manipulation d'index temporels :
      Après avoir défini l'index, vous pouvez extraire des composants de date, comme l'année, le mois ou le jour de la semaine, en utilisant des attributs comme .year, .month ou .day. Vous pouvez aussi effectuer des calculs temporels entre différentes dates.