Pandas : Comment convertir un index en date/heure
Vous pouvez utiliser la syntaxe suivante pour convertir une colonne d’index d’un DataFrame pandas en un format datetime :
df.index = pd.to_datetime(df.index)
L’exemple suivant montre comment utiliser cette syntaxe dans la pratique.
Exemple : convertir la colonne d’index en Datetime dans Pandas
Supposons que nous ayons le DataFrame pandas suivant qui contient des informations sur les ventes de produits dans un magasin :
import pandas as pd #create DataFrame df = pd.DataFrame({'time': ['4-15-2022 10:15', '5-19-2022 7:14', '8-01-2022 1:14', '6-14-2022 9:45', '10-24-2022 2:58', '12-13-2022 11:03'], 'product': ['A', 'B', 'C', 'D', 'E', 'F'], 'sales': [12, 25, 23, 18, 14, 10]}) #set 'time' column as index df = df.set_index('time') #view DataFrame print(df) product sales time 4-15-2022 10:15 A 12 5-19-2022 7:14 B 25 8-01-2022 1:14 C 23 6-14-2022 9:45 D 18 10-24-2022 2:58 E 14 12-13-2022 11:03 F 10
Supposons maintenant que nous essayions de créer une nouvelle colonne contenant l’heure dans la colonne d’index :
#attempt to create new column that contains hour of index column
df['hour'] = df.index.hour
AttributeError: 'Index' object has no attribute 'hour'
Nous recevons une erreur car la colonne d’index n’est actuellement pas au format datetime et ne contient donc pas d’attribut « heure ».
Pour éviter cette erreur, nous pouvons utiliser la fonction pandas to_datetime() pour convertir la colonne d’index au format datetime :
#convert index column to datetime format
df.index = pd.to_datetime(df.index)
#create new column that contains hour of index column
df['hour'] = df.index.hour
#view updated DataFrame
print(df)
product sales hour
time
2022-04-15 10:15:00 A 12 10
2022-05-19 07:14:00 B 25 7
2022-08-01 01:14:00 C 23 1
2022-06-14 09:45:00 D 18 9
2022-10-24 02:58:00 E 14 2
2022-12-13 11:03:00 F 10 11
En utilisant la fonction to_datetime() , nous pouvons convertir la colonne d’index au format datetime.
Ainsi, nous sommes en mesure de créer avec succès une nouvelle colonne appelée heure qui contient l’heure de l’heure dans la colonne d’index sans recevoir d’erreur.
Remarque : Vous pouvez trouver la documentation complète de la fonction pandas to_datetime() ici .
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres opérations courantes dans les pandas :
Comment créer une plage de dates dans Pandas
Comment convertir l’horodatage en date/heure dans Pandas
Comment calculer une différence entre deux dates chez les pandas