Как преобразовать дату и время в дату в pandas


Часто вы можете захотеть преобразовать дату и время в дату в pandas. К счастью, это легко сделать с помощью функции .dt.date , которая имеет следующий синтаксис:

df['date_column'] = pd.to_datetime(df['datetime_column']). dt.date

Пример: Datetime to Date в Pandas

Например, предположим, что у нас есть следующий кадр данных pandas:

import pandas as pd

#create pandas DataFrame with two columns
df = pd.DataFrame({'sales': [4, 11],
 'time': ['2020-01-15 20:02:58', '2020-01-18 14:43:24']})

#view DataFrame 
print(df)

sales time
0 4 2020-01-15 20:02:58
1 11 2020-01-18 14:43:24

Чтобы преобразовать столбец «время» только в дату, мы можем использовать следующий синтаксис:

#convert datetime column to just date
df['time'] = pd.to_datetime(df['time']). dt.date

#view DataFrame
print(df)

 sales time
0 4 2020-01-15
1 11 2020-01-18

Теперь в столбце «время» просто отображается дата без времени.

Использование Normalize() для Dtypes datetime64

Обратите внимание, что приведенный выше код вернет объект dtype:

#find dtype of each column in DataFrame
df.dtypes

sales int64
time object
dtype: object

Если вместо этого вы хотите datetime64 , вы можете normalize() компонент времени, который сохранит dtype как datetime64 , но будет отображать только дату:

#convert datetime column to just date
df['time'] = pd.to_datetime(df['time']). dt.normalize ()

#view DataFrame
print(df)

 sales time
0 4 2020-01-15
1 11 2020-01-18

#find dtype of each column in DataFrame
df.dtypes

sales int64
time datetime64[ns]
dtype: object

Снова отображается только дата, но столбец «время» имеет тип datetime64 dtype.

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

Как преобразовать столбцы в DateTime в Pandas
Как преобразовать строки в числа с плавающей запятой в Pandas