我有两个这样的数据框:
DF1:
ID v1 v2 v3
289 1455.0 2.0 0.62239
289 1460.0 0.0 0.46037
289 1465.0 4.0 0.41280
290 1470.0 0.0 0.39540
290 1475.0 2.0 0.61809
290 1475.0 2.0 0.61809
DF2:
ID v1 v2 v3
289 1423.0 2.0 0.62239
289 142Q.0 0.0 0.46037
289 14FW.0 4.0 0.41280
290 14Q3.0 0.0 0.39540
290 1453.0 2.0 0.61809
290 1454.0 2.0 0.61809
我想比较包含相同ID的行作为整体(即:当我比较两个df之间的前三行时,我不在乎该行的顺序,只想对不同的值进行优化),现在我的方法给了我逐行比较的结果,这可能有问题:
如果df1的第一行与df2的第二行相同, df1的第三行与df2的第一行相同, 并且df1的第二行与df2的第三行相同,这意味着前三行相同, 但是通过使用我的方法(逐行比较),它给了我每一行之间的区别。
有人可以帮我吗?非常感谢。
这是我尝试过的错误:
resultBool01 = (DF1 != DF2).stack() # Create Frame of comparison booleans
resultdiff01 = pd.concat([DF1.stack()[resultBool01], DF2.stack()[resultBool01]], axis=1)
resultdiff01.columns=["output_01", "output_02"]
ValueError: cannot handle a non-unique multi-index!
预期结果:(每个ID的值不同)
ID difvar output1 output2
289 v1 1455 1423