Преобразуйте Multi Index обратно в столбцы после поворота таблицы в Python - PullRequest
0 голосов
/ 31 мая 2019

Я хочу повернуть таблицу с несколькими столбцами.

Датафрейм

 a       b       c      d

id_1   loc_1   sale_1  1
id_1   loc_1   sale_2  2
id_2   loc_2   sale_1  3
id_2   loc_2   sale_2  4

Я применил следующую логику

pd.pivot_table(df,index=['a', 'b'], columns='c', values='d')

Я получил следующий вывод

                    sale_1  sale_2
('id_1', 'loc_1')      1      2
('id_2', 'loc_2')      3      4

но я хочу это как

 a       b     sale_1  sale_2
id_1   loc_1      1      2
id_2   loc_2      3      4

Я попытался изменить логику на

pd.pivot_table(df,index=['a', 'b'], columns='c', values='d').reset_index()

но я сталкиваюсь с ошибкой

TypeError: cannot insert an item into a CategoricalIndex that is not 
           already an existing category

Я не уверен, где я делаю неправильно?

1 Ответ

1 голос
/ 31 мая 2019

Ваша проблема в том, что в поворотном фрейме данных есть категориальные столбцы.Сбросить:

new_df = pd.pivot_table(df,index=['a', 'b'], columns='c', values='d')
new_df.columns = new_df.columns.categories

new_df.reset_index()

Возврат:

    a       b       sale_1  sale_2
0   id_1    loc_1   1       2
1   id_2    loc_2   3       4
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...