Comment convertir des colonnes en DateTime dans Pandas
Souvent, vous pourriez être intéressé par la conversion d’une ou plusieurs colonnes d’un DataFrame pandas au format DateTime. Heureusement, cela est facile à faire en utilisant la fonction to_datetime() .
Ce tutoriel montre plusieurs exemples d’utilisation de cette fonction sur le DataFrame suivant :
import numpy as np import pandas as pd #create DataFrame df = pd.DataFrame({'event': ['A', 'B', 'C'], 'start_date': ['20150601', '20160201', '20170401'], 'end_date': ['20150608', '20160209', '20170416'] }) #view DataFrame df event start_date end_date 0 A 20150601 20150608 1 B 20160201 20160209 2 C 20170401 201704161 #view column data types df.dtypes event object start_date object end_date object dtype: object
Exemple 1 : convertir une seule colonne en DateTime
Le code suivant montre comment convertir la colonne « start_date » d’une chaîne au format DateTime :
#convert start_date to DateTime format df['start_date'] = pd.to_datetime(df['start_date']) #view DataFrame df event start_date end_date 0 A 2015-06-01 20150608 1 B 2016-02-01 20160209 2 C 2017-04-01 20170416 #view column date types df.dtypes event object start_date datetime64[ns] end_date object dtype: object
Notez que la fonction to_datetime() est intelligente et peut généralement déduire le format de date correct à utiliser, mais vous pouvez également spécifier le format à utiliser avec l’argument format :
#convert start_date to DateTime format df['start_date'] = pd.to_datetime(df['start_date'], format='%Y%m%d') #view DataFrame df event start_date end_date 0 A 2015-06-01 20150608 1 B 2016-02-01 20160209 2 C 2017-04-01 20170416 #view column date types df.dtypes event object start_date datetime64[ns] end_date object dtype: object
Exemple 2 : convertir plusieurs colonnes en DateTime
Le code suivant montre comment convertir les colonnes « start_date » et « end_date » des chaînes aux formats DateTime :
#convert start_date and end_date to DateTime formats df[['start_date', 'end_date']] = df[['start_date', 'end_date']].apply(pd.to_datetime) #view DataFrame df event start_date end_date 0 A 2015-06-01 2015-06-08 1 B 2016-02-01 2016-02-09 2 C 2017-04-01 2017-04-16 #view column date types df.dtypes event object start_date datetime64[ns] end_date datetime64[ns] dtype: object
Exemple 3 : convertir les colonnes au format DateTime avec les secondes
Dans certains cas, vous pouvez également avoir des colonnes qui incluent une date ainsi que les heures, les minutes et les secondes, comme le DataFrame suivant :
#create DataFrame df = pd.DataFrame({'event': ['A', 'B', 'C'], 'start_date': ['20150601043000', '20160201054500', '20170401021215'], 'end_date': ['20150608', '20160209', '20170416'] }) #view DataFrame df event start_date end_date 0 A 20150601043000 20150608 1 B 20160201054500 20160209 2 C 20170401021215 20170416
Encore une fois, la fonction to_datetime() est intelligente et peut généralement déduire le bon format à utiliser sans que nous le spécifiions :
#convert start_date to DateTime format df['start_date'] = pd.to_datetime(df['start_date']) #view DataFrame df event start_date end_date 0 A 2015-06-01 04:30:00 20150608 1 B 2016-02-01 05:45:00 20160209 2 C 2017-04-01 02:12:15 20170416 #view column date types df.dtypes event object start_date datetime64[ns] end_date object dtype: object
Bien sûr, dans la nature, vous rencontrerez probablement une variété de formats DateTime étranges, vous devrez donc peut-être utiliser l’argument format pour indiquer à Python exactement quel format DateTime utiliser.
Dans ces cas, reportez-vous à cette page pour une liste complète des opérateurs % DateTime que vous pouvez utiliser pour spécifier les formats.
Ressources additionnelles
Comment convertir DateHeure en date dans Pandas
Comment convertir des chaînes en flotteur dans Pandas