使用wide_to_long时如何解决"the id variables need to uniquely identify each row"问题?



这是此

的后续文章

请在此处找到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

我想将列ColA2ColB2ColA3ColB3分开,并将它们再次合并到数据集中(并保持IDDate(

>

预期输出:

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

相关内容

最新更新