我有一个具有以下格式的初始数据框:
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']
)
或者,在您的情况下,进行数据透视时不涉及任何聚合,可以使用
set_index
和unstack
:df.set_index(['store_id', 'product', 'sale_ind']).unstack(['product', 'sale_ind'])
关于python - Python PANDAS:多列枢轴和关卡交换,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49661049/