Ошибка Pandas при создании сводной таблицы (KeyError) - PullRequest
0 голосов
/ 12 октября 2018

Я пытаюсь создать сводную таблицу из Dataframe, используя Pandas.Ниже приведен вид моего Dataframe.

category,date,type1,type2,total
PROD_A,2018-10-01,2,2,4
PROD_A,2018-10-02,2,0,2
PROD_B,2018-10-01,0,0,0
PROD_A,2018-10-03,0,0,0

Я пытаюсь создать сводную область и сохранить вывод в файл Excel

Summary = pd.pivot_table(df, values=['total'], index=['category'], columns='date')

Summary.to_excel(writer, sheet_name='Summary')

Я получаю приведенную ниже ошибку

KeyError : 'total'

Может ли кто-нибудь направить меня, где я ошибаюсь?Спасибо

Обновление типа данных:

category   object
date       object
type1      int64
type2      int64
total      float64
dtype:     object

Вывод df.head ():

category,date,type1,type2,total
PROD_A,2018-10-01,2,2,4
PROD_A,2018-10-02,2,0,2
PROD_B,2018-10-01,0,0,0
PROD_A,2018-10-03,0,0,0
PROD_B,2018-10-03,2,3,5

1 Ответ

0 голосов
/ 12 октября 2018

Проблема ['total'], он создает MultiIndex в столбцах:

Summary = pd.pivot_table(df, values=['total'], index=['category'], columns='date')

print (Summary)

              total                      
date     2018-10-01 2018-10-02 2018-10-03
category                                 
PROD_A          4.0        2.0        0.0
PROD_B          0.0        NaN        NaN

Решение - использовать, удалите его:

Summary = pd.pivot_table(df, values='total', index='category', columns='date')
print (Summary)
date      2018-10-01  2018-10-02  2018-10-03
category                                    
PROD_A           4.0         2.0         0.0
PROD_B           0.0         NaN         NaN

Последнее преобразование индекса в столбец по reset_index:

Summary = (pd.pivot_table(df, values='total', index='category', columns='date')
             .reset_index(drop=True))
print (Summary)
date  2018-10-01  2018-10-02  2018-10-03
0            4.0         2.0         0.0
1            0.0         NaN         5.0
...