Как получить индекс сводной таблицы в виде столбцов - PullRequest
0 голосов
/ 15 мая 2019

Я пытаюсь повернуть таблицу, которая у меня есть.Он имеет 4 основных столбца и около 20 других бесполезных столбцов.Столбцы: Сайт, Категория, Week_Beginning и Total_Hours.

Я пытаюсь суммировать total_hours по сайту, категории и week_beginning.

Я использую функцию df.pivot_table, и этоделает это, как я хочу, но вывод требует некоторого исправления.

Это работает хорошо, но я получаю следующий вывод:

Index ('sum', 'Total_Hours') ('Site1', 'Cat1', метка времени ('2019-12-23')) 725

Я использую код:

df2=df.pivot_table(index=['Site','Category','Week_Beginning'],values=['Total_Hours'],aggfunc=[np.sum],fill_value=0)

Код работает хорошос математической точки зрения, то есть, что сумма правильная

Вывод:

Работает хорошо, но я получаю следующий вывод:

Index ('sum', 'Total_Hours') ('Site1', 'Cat1', Timestamp ('2019-02-23')) 725

Таким образом, на выходе есть только один столбец сname ('sum', 'Total_Hours')

Я ожидал 4 столбца, как показано ниже:

Site       Category           Week_Beginning           Total_Hours
Site1        Cat1               2019-03-23                225
Site1        Cat1               2019-03-30                152 

Любая помощь будет принята с благодарностью.Я использую Python 3.7.3 через Spyder 3.3.3

Спасибо.

-PR.

1 Ответ

0 голосов
/ 15 мая 2019

Мне кажется, что вы должны использовать groupby -

df2=df.groupby(['Site','Category','Week_Beginning']).agg({"Total_Hours":"sum"}).reset_index()
...