я следующий кадром данных (реальный кадр данных гораздо больше, больше, чем этот):Как избавиться от многоуровневого индекса после использования pandas pivat table?
sale_user_id sale_product_id count
1 1 1
1 8 1
1 52 1
1 312 5
1 315 1
Затем изменил его, чтобы переместить значения в sale_product_id как заголовки столбцов, используя следующий код:
reshaped_df=id_product_count.pivot(index='sale_user_id',columns='sale_product_id',values='count')
и полученный фрейм данных:
sale_product_id -1057 1 2 3 4 5 6 8 9 10 ... 98 980 981 982 983 984 985 986 987 99
sale_user_id
1 NaN 1.0 NaN NaN NaN NaN NaN 1.0 NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
3 NaN 1.0 NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
4 NaN NaN 1.0 NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
, как вы можете видеть, у нас есть индекс multililevel, что мне нужно, чтобы иметь sale_user_is в е рвый колонок без многоуровневого индексирования:
я принять следующий подход:
reshaped_df.reset_index()
результата будет, как это я до сих пор есть столбец sale_product_id, но я не нужен больше:
sale_product_id sale_user_id -1057 1 2 3 4 5 6 8 9 ... 98 980 981 982 983 984 985 986 987 99
0 1 NaN 1.0 NaN NaN NaN NaN NaN 1.0 NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
1 3 NaN 1.0 NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
2 4 NaN NaN 1.0 NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN
Я могу подмножить этот фрейм данных, чтобы избавиться от sale_product_id, но я не думаю, что это было бы эффективно. Я ищу эффективный способ избавиться от многоуровневой индексации при изменении формы исходного кадра
Я пытался все решения, actulally первых два решения удалить sale_user_id, но мне нужно это как первый столбец, мне нужно, чтобы избавиться от of sale_product_id. – sanaz
и последние два решения также удалить sale_user_id – sanaz
Пожалуйста, проверьте мои изменения. – jezrael