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

Ajouter un commentaire

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