Come convertire le colonne in datetime in pandas


Spesso potresti essere interessato a convertire una o più colonne di un DataFrame panda nel formato DateTime. Fortunatamente, questo è facile da fare utilizzando la funzione to_datetime() .

Questo tutorial mostra diversi esempi di utilizzo di questa funzione sul seguente DataFrame:

 import numpy as np
import pandas as pd

#createDataFrame
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

Esempio 1: convertire una singola colonna in DateTime

Il codice seguente mostra come convertire la colonna “start_date” da una stringa al formato 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

Tieni presente che la funzione to_datetime() è intelligente e di solito può dedurre il formato di data corretto da utilizzare, ma puoi anche specificare quale formato utilizzare con l’argomento 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

Esempio 2: convertire più colonne in DateTime

Il codice seguente mostra come convertire le colonne “start_date” e “end_date” dalle stringhe ai formati 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

Esempio 3: convertire le colonne nel formato DateTime con secondi

In alcuni casi, potresti anche avere colonne che includono una data oltre a ore, minuti e secondi, come il seguente DataFrame:

 #createDataFrame
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

Ancora una volta, la funzione to_datetime() è intelligente e di solito può dedurre il formato corretto da utilizzare senza che lo specifichiamo:

 #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

Naturalmente, in natura probabilmente incontrerai una varietà di strani formati DateTime, quindi potresti dover utilizzare l’argomento format per dire a Python esattamente quale formato DateTime utilizzare.

In questi casi, fai riferimento a questa pagina per un elenco completo degli operatori %DateTime che puoi utilizzare per specificare i formati.

Risorse addizionali

Come convertire DateTime fino ad oggi in Panda
Come convertire le stringhe in float in Pandas

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *