这是此
的后续文章请在此处找到MCVE
我的数据框架看起来与以下一个相似:
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
分开,并将它们再次合并到数据集中(并保持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
。
我也已经使用reset_index()
尝试了该方法,但我仍然有同样的问题。
我想这个问题来自我的特定数据集。但是我不知道它有什么问题以及如何弄清楚它,以解决此问题。你有什么建议吗?
请让我知道我可以做些什么来解决这个问题。谢谢!
我没有遇到两行错误,以达到所需的结果,只需使用double 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