这是此one
的后续帖子请找到MCVE here
我的数据框类似于以下内容:
ID Date ColA1 ColB1 ColA2 ColB2 ColA3 ColB3
id1 date1 1 2 3 4 5 6
id2 date2 7 8 9 10 11 12
我想拆分列ColA2
,ColB2
,ColA3
,ColB3
,然后将它们作为行再次合并到数据集中(并仍然保留{{1} }和ID
)
预期输出:
Date
我都尝试过
ID Date ColA ColB
id1 date1 1 2
id1 date1 3 4
id1 date1 5 6
id2 date2 7 8
id2 date2 9 10
id2 date2 11 12
和
pd.wide_to_long(df, stubnames = ['ColA', 'ColB'], i = ['ID', 'Date'], j = 'value').reset_index([0,1])
但是仍然出现相同的错误,说pd.wide_to_long(df.reset_index(), stubnames = ['ColA', 'ColB'], i = ['ID', 'Date'], j = 'value').reset_index(drop=True)
。
我也已经用the id variables need to uniquely identify each row
尝试了方法here,但仍然遇到相同的问题。
我猜这个问题来自我的特定数据集。但是我不知道它有什么问题以及如何解决它,以解决此问题。你有什么建议吗?
请让我知道我可以做什么来解决此问题。谢谢!
答案 0 :(得分:0)
这两行都没有出现任何错误,只需使用双reset_index
即可达到您想要的结果:
df = (pd.wide_to_long(df, stubnames=['ColA','ColB'], i=['ID','Date'], j='value')
.reset_index([0,1])
.reset_index(drop=True))
print(df)
ID Date ColA ColB
0 id1 date1 1 2
1 id1 date1 3 4
2 id1 date1 5 6
3 id2 date2 7 8
4 id2 date2 9 10
5 id2 date2 11 12