У меня есть следующий кадр данных Pandas:
df.head()
выход
id unplug_hourDateTime
0 2018-09-01 01:00:00+02:00
1 2018-03-01 01:00:00+02:00
2 2018-03-01 01:00:00+02:00
3 2018-04-01 01:00:00+02:00
4 2018-04-01 01:00:00+02:00
Моя цель - построить график calmap на основе ежедневной записи, поэтому мне нужен фрейм данных с индексом в формате DatetimeIndex, TimedeltaIndex или PeriodIndex.
Я написал следующее:
df['unplug_Date']=df['unplug_hourDateTime'].map(lambda x : x.date())
df_calmap=df['unplug_Date'].value_counts().to_frame()
df_calmap.head()
выход
unplug_Date
2018-09-20 16562
2018-09-13 16288
2018-09-19 16288
2018-09-12 16092
2018-09-27 16074
На первый взгляд выглядит то, что я искал, но если я использую пакет calmap и выполняю calmap.calendarplot(df_calmap)
, я получаю сообщение об ошибке, которое, как я предполагал, связано с форматом индекса.
AttributeError: у объекта 'Index' нет атрибута 'year'
Как я могу заставить фрейм данных использовать столбец индекса как DatetimeIndex?
Я нашел этот интересный ответ, но я не могу понять, как использовать df = df.set_index(pd.DatetimeIndex(df['b']))
с уже существующим индексом, а не с новым столбцом.