Як перетворити стовпці на datetime у pandas


Часто вам може бути цікаво перетворити один або кілька стовпців pandas DataFrame у формат DateTime. На щастя, це легко зробити за допомогою функції to_datetime() .

Цей підручник показує кілька прикладів використання цієї функції на наступному 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

Приклад 1: перетворення одного стовпця на DateTime

У наведеному нижче коді показано, як перетворити стовпець “start_date” із рядка у формат 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

Зверніть увагу, що функція to_datetime() є інтелектуальною і зазвичай може визначити правильний формат дати для використання, але ви також можете вказати, який формат використовувати за допомогою аргументу 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

Приклад 2: перетворення кількох стовпців на DateTime

У наведеному нижче коді показано, як перетворити стовпці «start_date» і «end_date» із рядків у формати 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

Приклад 3: перетворення стовпців у формат DateTime із секундами

У деяких випадках у вас також можуть бути стовпці, які містять дату, а також години, хвилини та секунди, як-от такий 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

Знову ж таки, функція to_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 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

Звичайно, у дикій природі ви, ймовірно, зіткнетеся з різними дивними форматами DateTime, тому вам може знадобитися використовувати аргумент format , щоб повідомити Python, який саме формат DateTime використовувати.

У таких випадках зверніться до цієї сторінки , щоб отримати повний список операторів %DateTime, які можна використовувати для визначення форматів.

Додаткові ресурси

Як перетворити DateTime на дату в Pandas
Як перетворити рядки на float у Pandas

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *