Comment spécifier le format dans pandas.to_datetime



Vous pouvez utiliser la fonction pandas.to_datetime() pour convertir une colonne de chaîne en colonne datetime dans un DataFrame pandas.

Lorsque vous utilisez cette fonction, vous pouvez utiliser l’argument format pour spécifier le format dans lequel se trouve votre date afin d’éviter les erreurs lors de sa conversion de chaîne en datetime.

Cette fonction utilise la syntaxe de base suivante :

df['datetime'] = pd.to_datetime(df['my_date_column'], format='%m%d%Y %H:%M:%S'])

Voici les directives les plus courantes que vous pouvez fournir à l’argument format :

  • %m : Mois sous forme de nombre avec zéro (01, 02, … 12)
  • %d : Jour du mois sous forme de nombre avec zéro (01, 02, … 31)
  • %y : Année avec le siècle comme numéro (2020, 2021, 2022, …)
  • %H : Heure (horloge sur 24 heures) sous forme de nombre complété par des zéros (00, 01, … 23)
  • %I : Heure (horloge sur 12 heures) sous forme de nombre complété par des zéros (01, 02, … 12)
  • %p : Soit AM, soit PM
  • %M : Minute sous forme de nombre complété par des zéros (00, 01, … 59)
  • %S : seconde sous forme de nombre complété par des zéros (00, 01, … 59)

Pour une liste complète des directives, reportez-vous à cette page .

L’exemple suivant montre comment utiliser l’argument format dans la fonction to_datetime() dans différents scénarios.

Exemple : spécifiez le format dans pandas.to_datetime

Supposons que nous ayons le DataFrame pandas suivant qui contient des informations sur les ventes totales réalisées à différentes dates dans un magasin de détail :

import pandas as pd

#create DataFrame
df = pd.DataFrame({'date': ['10012023 4:15:30', '10042023 7:16:04','10062023 9:25:00',
                            '10142023 15:30:50', '10152023 18:15:00'],
                   'sales': [100, 140, 235, 120, 250]})

#view DataFrame
print(df)

                date  sales
0   10012023 4:15:30    100
1   10042023 7:16:04    140
2   10062023 9:25:00    235
3  10142023 15:30:50    120
4  10152023 18:15:00    250

#view data type of each column in DataFrame
print(df.dtypes)

date     object
sales     int64
dtype: object

Nous pouvons voir que la colonne de date est actuellement une colonne de chaîne (c’est-à-dire d’objet).

Supposons que nous essayions d’utiliser pandas.to_datetime() pour convertir cette colonne en datetime :

#attempt to convert date column to datetime format
df['date'] = pd.to_datetime(df['date'])

ParserError: month must be in 1..12: 10012023 4:15:30 present at position 0

Nous recevons une erreur car la fonction pandas.to_datetime() ne reconnaît pas le format de date et d’heure dans lequel se trouve actuellement la colonne de date .

On peut également utiliser l’argument format pour spécifier le format de la colonne :

#convert date column to datetime format
df['date'] = pd.to_datetime(df['date'], format='%m%d%Y %H:%M:%S')

#view DataFrame
print(df)

                 date  sales
0 2023-10-01 04:15:30    100
1 2023-10-04 07:16:04    140
2 2023-10-06 09:25:00    235
3 2023-10-14 15:30:50    120
4 2023-10-15 18:15:00    250

#view updated type of each column
print(df.dtypes)

date     datetime64[ns]
sales             int64
dtype: object

Nous pouvons voir que la colonne de date a été convertie avec succès en colonne datetime et nous n’avons reçu aucune erreur puisque nous avons utilisé l’argument format pour spécifier le format exact dans lequel se trouvait la colonne de date .

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 *