我有下表 DataFrame
Python 上有没有简单的方法来仅取消透视存储? 要做到这一点:
我正在考虑将其完全取消旋转,然后将其旋转回来,保留值(value)和数量作为值。但我认为应该有一些更有效的解决方案
最佳答案
如果需要Qty, Value
来分隔列,请将第一列转换为MultiIndex
,因此可以使用Series.str.rsplit
将最后一个空格添加到 列中的 MultiIndex
,因此最后按 DataFrame.stack
进行整形:
df = df.set_index(['Items','Description'])
df.columns = df.columns.str.rsplit(n=1, expand=True)
df = df.rename_axis(('Store number',None), axis=1).stack(0).reset_index()
print (df)
Items Description Store number Qty Value
0 item 1 Some item name Store 1 5 120
1 item 1 Some item name Store 2 7 240
2 item 2 Some other item Store 1 9 1234
3 item 2 Some other item Store 2 12 98
关于python - 部分取消透视 pandas DataFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69974521/