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