У меня возникли проблемы с созданием сводной таблицы из dataframe с индексом datetimeindex в качестве индекса. Редактирование, чтобы показать полный кодСводная таблица, не созданная с помощью datetimeindex из dataframe
Код в вопросе
unit1 = ["U1", "U1", "U1", "U1", "U1", "U1"]
name1 = ["fn ln", "fn ln2", "fn ln3", "fn ln4", "fn ln5", "fn ln6"]
count1 = [2,4,6,8,10,12]
df = pd.DataFrame({'Date': pd.Timestamp('2016-01-01'),
'Unit': unit1,
'Name"': name1,
'Count': count1})
df2 = df.set_index(pd.DatetimeIndex(df.Date))
df2['Month'] = df2.index.month
# this line succeeds
pt = pd.pivot_table(df, index=df2.index.month, values='Count')
# this line fails with Series object has no attribute month
pt = pd.pivot_table(df, index=df2.Month.month, values='Count')
Внутренности для dataframe (_stat_axis), показывают, что поле индекса DatetimeIndex. Столбец месяца также имеет параметр datetimeindex, но создание сводной таблицы по-прежнему дает ошибку серии.
Я думаю, что это ошибка - работает только создать временную колонку 'ДФ [ 'т'] = df.index.month' и' печать pd.pivot_table (df, index = 'm', aggfunc = np.sum) ' – jezrael
Странно, это не работает. Даже добавление ключевого слова values не делает трюк. Похоже, что единственным решением является фактический индекс. – cryptoref
Если вы вызываете столбец 'Month', вы можете использовать:' pt = pd.pivot_table (df2, index = 'Month', values = 'Count') ' – jezrael