Как вывести только не совпадающие данные в pandas?

Сравниваю две таблицы excel:

df1 = pd.read_excel(self.filename, skiprows=2, header=None, usecols=[3,4,5,20])
df2 = pd.read_excel(self.filename1, skiprows=2, header=None, usecols=[3,4,5,20])
difference = df1[df1 != df2]

результат сравнения вывожу в третью таблицу:

df1.to_excel(r"C:\Users\User\Desktop\Результат.xlsx")

но в неё попадают все строки. Как их убрать, оставив лишь те, которые не совпали с первой таблицей?

Исходные данные


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

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

Если наименования столбцов в обоих фреймах совпадают, то можно попробовать сделать так:

diff = df1.loc[df1.ne(df2).any(axis=1)]

Пример решения для данных по ссылке:

In [105]: df2.loc[df1.ne(df2).any(axis=1)]
Out[105]:
   №     Товар  Цена
0  0  Карандаш    70
3  3  Резинка     50
→ Ссылка