Как сравнить два df и выбрать строки?

Имеется два df:

df1

date        qw   er ty ui
2021.06.07  rtg  23 45 56
2021.06.07  rty  23 45 56
2021.06.07  req  87 89 09
2021.06.07  rew  98 09 98
2021.06.05  rew  98 45 67
2021.06.05  req  98 13 34

df2

date        qw   er ty ui
2021.06.07  rty  23 45 130
2021.06.07  req  87 89 50
2021.06.07  tre  98 09 98

Как корректно сравнить оба df и сделать выборку строк из 2го df?

Результат выборки должен выглядеть следующем образом:

date        qw   er ty ui
2021.06.07  tre  98 09 98

Если по основным условиям, сравнивать текущую дату, соответсвенно, где значения qw er ty в двух df одинаковые, не попадают в выборку, только новые, попытки соединить и выполнить query запрос, к сожалению, не увенчались успехом.


Ответы (1 шт):

Автор решения: MaxU

Попробуйте так:

res = (df2
       .merge(df1, on=["date", "qw", "er", "ty"], indicator=True, how="outer", suffixes=["", "_1"])
       .query("_merge == 'left_only'")
       .dropna(axis=1)
       .drop(columns="_merge"))

результат:

In [184]: res
Out[184]:
         date   qw  er  ty    ui
2  2021.06.07  tre  98   9  98.0
→ Ссылка