Меня беспокоит проблема. Импорт некоторых данных из .csv в Python дает вектор дат в формате:
РЕДАКТИРОВАТЬ: На самом деле это не вектор дат. Данные импортируются в фрейм данных, поэтому мне нужно работать над объектом DatetimeIndex
.
1961-01-01 09:00:00
Я хочу убрать часть часов и оставить только часть ГГГГ-ММ-ДД, но я не могу найти способ сделать это. Pandas to_datetime
не делает то, что мне нужно:
pd.to_datetime("1961-01-01 09:00:00", format=('%Y-%m-%d'))
Timestamp('1961-01-01 09:00:00')
В то время как datetime.strptime не просто отбрасывает час:
from datetime import datetime as dt
dt.strptime("1961-01-01 09:00:00", "%Y-%m-%d")
ValueError: unconverted data remains: 09:00:00
Какие-либо предложения?
РЕДАКТИРОВАТЬ 2: Благодаря @WeizhongTu я нашел решение. Работая с фреймом данных с индексом DatetimeIndex
, мы можем использовать:
mydf.index = mydf.index.values.astype('M8[D]')
Это дает:
mydf.index[0:10]
DatetimeIndex(['1961-01-01', '1961-01-02', '1961-01-03', '1961-01-04',
'1961-01-05', '1961-01-06', '1961-01-07', '1961-01-08',
'1961-01-09', '1961-01-10'],
dtype='datetime64[ns]', freq=None)
pd.to_datetime("1961-01-01 09:00:00", format=('%Y-%m-%d')).dt.date
, чтобы напрямую сбрасывать часы при преобразовании - person moys   schedule 02.08.2019