Как преобразовать столбцы в DateTime в Pandas


Часто вас может заинтересовать преобразование одного или нескольких столбцов в кадре данных pandas в формат DateTime. К счастью, это легко сделать с помощью функции to_datetime() .

В этом руководстве показано несколько примеров использования этой функции в следующем кадре данных:

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

Пример 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() умна и обычно может вывести правильный формат даты для использования, но вы также можете указать формат для использования с аргументом формата :

#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 с секундами

В некоторых случаях у вас также могут быть столбцы, содержащие дату вместе с часами, минутами и секундами, например следующий кадр данных:

#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

Опять же, функция 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, поэтому вам, возможно, придется использовать аргумент формата , чтобы точно указать Python, какой формат DateTime использовать.

В таких случаях обратитесь к этой странице за полным списком операторов % DateTime, которые можно использовать для указания форматов.

Дополнительные ресурсы

Как преобразовать дату и время в дату в pandas
Как преобразовать строки в числа с плавающей запятой в Pandas

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.