我有一个具有以下格式的初始数据框:

store_id,product,sale_ind,total_sold,percentage_sold
1,thing1,sale,30,46.2
1,thing2,no_sale,20,30.7
1,thing3,sale,15,23.1
2,thing4,sale,10,16.7
2,thing3,sale,20,33.3
2,thing2,sale,30,50.0
3,thing3,no_sale,20,50.0
3,thing2,sale,15,37.5
3,thing1,no_sale,5,12.5


我已经计算了所有想要的东西,但是现在我真的在努力将数据重塑为以下格式:

                product
                sale_in
         total_sold percentage_sold
store_id
1,
2,
3,


当我尝试这个:

df.pivot(index='store_id', columns='product')


我得到:ValueError: Index contains duplicate entries, cannot reshape

任何提示最赞赏!我很害怕我可能不得不对分层索引进行解决。

最佳答案

您需要pivot_table才能进行多列数据透视:

df.pivot_table(
    index=['store_id'],
    columns=['product', 'sale_ind'],
    values=['total_sold', 'percentage_sold']
)


python - Python PANDAS:多列枢轴和关卡交换-LMLPHP

或者,在您的情况下,进行数据透视时不涉及任何聚合,可以使用set_indexunstack

df.set_index(['store_id', 'product', 'sale_ind']).unstack(['product', 'sale_ind'])

关于python - Python PANDAS:多列枢轴和关卡交换,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49661049/

10-12 23:20