Как использовать сводную таблицу в python (3.x) для решения этой проблемы

#python-3.x #group-by #pivot-table

#python-3.x #сгруппировать по #сводная таблица

Вопрос:

У меня есть следующие столбцы, как показано ниже (только для интересующих столбцов).

   Ship Mode   : Product Category    :  Product Sub-Category  : Sales
  Express Air :  Office             :  Paper                 : 500
  Express Air :  Technology         :  Paper                 : 200
  Express Air :  Office             :  Pen                   : 500
  Regular Air :  Office             :  Art Pen               : 200
  Regular Air :  Technology         :  Art Pen               : 200
  Regular Air :  Technology         :  Paper                 : 200
  

Как использовать сводную таблицу, чтобы она давала результат, подобный приведенному ниже

   Ship Mode     Product Sub-Category  Total Sales(for each category)
  Express Air - Paper                  700
              - Pen                    500
  Regular Air - Art Pen                400
              - Paper                  200
  

Я использовал это утверждение, но, по-видимому, оно не работает. Столбец Sales, похоже, не имеет отношения к индексам, поскольку он показывает итоговые значения других отдельных столбцов.

   a1.pivot_table(index = ['Ship Mode','Product Sub-Category'], columns = 'Sales',aggfunc=sum )
  

Ответ №1:

Попробуйте добавить «[]» в столбец «Продажи».

a1_pivot = a1.pivot_table(индекс = [‘Режим доставки’, ‘Подкатегория продукта’], столбцы = [‘Продажи’],aggfunc = сумма)

Если это не сработает, попробуйте использовать «значения» вместо «столбца».

a1.сводная таблица (индекс = [‘Режим доставки’, ‘Подкатегория продукта’],значения=[‘Продажи’],aggfunc = сумма)