请帮帮我。有一个表,您需要翻转 2 列并从中生成行。在这种情况下,第一列中的值的“组合”应该重复,其余的应该形成唯一的组合。Col_Name 列中是未来列的名称(有很多变体),Value 中是这些列的值
那些。从这个表:
你需要得到这个:
我尝试使用pandas-pivot,但聚合不起作用。我不知道还有什么办法可以把它翻过来:(
import pandas as pd
data = {'ID': ['10001017236', '10001017236', '10001017236', '10001017236', '10001017236', '10001017236', '10001017236'],
'ITEM_NO': ['00001', '00001', '00001', '00001', '00001', '00001', '00001'],
'COL_NAME': ['CODE_ETSNG', 'CODE_ETSNG', 'ROAD_FROM', 'ROAD_FROM', 'ROAD_FROM', 'ROAD_FROM', 'SUB_RPS'],
'VALUE': ['693227', '521*', '17', '63', '58', '24', '003']}
df = pd.DataFrame(data)
res = (df
.assign(idx=df.groupby(["ID", 'ITEM_NO']).cumcount())
.pivot_table(index=["ID", 'ITEM_NO'], columns="COL_NAME",
values="VALUE", aggfunc="unique"))
它是歪的,但似乎有用。肯定还有改进的空间,但目前仅此而已。
添加了测试数据。
旋转-
pivot
欧姆,组合-MultiIndex.from_product()
欧姆