如何在使用pandas的透视表后消除多级索引?
如何在使用pandas的透视表后消除多级索引?
我有一个数据框(实际的数据框比这个要大得多):
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
如您所见,我们有一个多级索引,我需要将sale_user_id放在第一列,而不是使用多级索引:
我采用以下方法:
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
,但我认为这样不够高效。我正在寻找一种在重塑原始数据框时去除多级索引的高效方法。