Как сравнить два 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