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

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *