В моем df есть поле под названием «дни». Мне нужно создать дату и время из «дней» и даты начала. Наверное, громоздко, но работает:
for t in df.index:
df.loc[t,'date']=datetime.date(startdate)+
datetime.timedelta(days=df.loc[t,'days'])
df.index=df.date
Когда я пытаюсь повысить частоту дискретизации:
udf=df.resample('M',how='sum')
Я получил:
TypeError: действует только с DatetimeIndex, TimedeltaIndex или PeriodIndex, но получил экземпляр «Index»
Если я устанавливаю индекс с полем даты и времени, почему индекс не становится индексом даты и времени (или «DatetimeIndex»)? Каждая запись в «дате» и индексе являются датой и временем, не так ли?
type(df.date[0])
<type 'datetime.date'>
type(df.index[0])
<type 'datetime.date'>
Путь вокруг этого:
df.index=pd.to_datetime(df.index)
Но я не могу найти никакого объяснения, почему назначение существующей даты и времени индексу не работает, но преобразование существующей даты и времени (df.index) в дату и время через pd.to_datetime (df.index) работает.