У меня есть два кадра данных, как это:
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
Я хочу сравнить строки, которые содержат один и тот же идентификатор в целом (то есть: когда я сравниваю первые три строки между двумя df, я нене заботясь о порядке строки, просто хочу уточнить другое значение), теперь мой метод дает мне результаты сравнения построчно, это может иметь проблему:
, если 1-я строка df1так же, как 2-й ряд df2, 3-й ряд df1 такой же, как 1-й ряд df2, а 2-й ряд df1 такой же, как 3-й ряд 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