【发布时间】:2020-08-20 06:58:52
【问题描述】:
我的数据具有如下所示的重复部分:
Part | Location | ONHand
A | XY | 5
A | XW | 4
B | XC | 6
B | XV | 8
C | XQ | 9
我正在尝试将其全部转换为每个零件一行,列出每个位置的所有位置和现有数量。
我尝试使用此代码
df_f = df.assign(cc=df.groupby('Part').cumcount()+1).set_index(['Part', 'cc']).unstack()
df_f.columns = [f'{col[0]}{col[1]}' for col in df_f.columns]
df_f.to_csv('parts_multi_location.csv')
但问题是它返回位置 1、2、3,然后返回 ONHand 1、2、3 等等。
我需要最终结果来返回 Location 1、Onhand 1、Location 2、Onhand 2、 所以标题应该是这样的:
Part | Location_1 | Onhand_1 | Location 2| Onhand 2
A | XY | 5 | XW | 4
B | XC | 6 | XV | 8
C | XQ | 9
【问题讨论】:
-
请参考第11题关于复制的内容。使用
f'{col[0]}_{col[1]}'而不是f'{col[0]}{col[1]}'。 -
@QuangHoang 我试过了,但它仍然先给我所有位置,然后是所有现有值
-
@ricsilo 我道歉。请在下面查看我的答案。
标签: python python-3.x excel pandas