【发布时间】:2020-07-09 04:33:08
【问题描述】:
【问题讨论】:
-
这个问题没有表现出足够的努力。首先缺少 complete and reproducible ,您可以参考 this ,您也没有包含您尝试过的内容。您应该编辑问题,以便将来的读者更清楚。
【问题讨论】:
使用GroupBy.cumcount 作为计数器,通过DataFrame.set_index 创建MultiIndex,通过Series.unstack、DataFrame.add_prefix 和最后一个DataFrame.reset_index 重塑:
print (df)
Location ID Item
0 A 1 X
1 A 1 Y
2 B 1 X
3 B 1 Y
4 B 1 Z
g = df.groupby(['Location','ID']).cumcount().add(1)
df1 = (df.set_index(['Location','ID', g])['Item']
.unstack(fill_value='')
.add_prefix('Item')
.reset_index())
print (df1)
Location ID Item1 Item2 Item3
0 A 1 X Y
1 B 1 X Y Z
【讨论】: