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'estFalse
, 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'estFalse
.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 :
-
DataFrame d'origine :
Le DataFrame d'origine contient une colonne de dates sous forme d'une colonne ordinaire. -
Définir la colonne
'date'
comme index :
La fonctiondf.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 utilisantinplace=True
, cette opération modifie directement le DataFrame sans créer de copie. -
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, commeresample()
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.
-