Как сравнить данные из базы данных с csv файлом на Python?

У меня есть большая база данных и несколко парсеров, парсеры делают CSV файлы каждый день и их нужно добовлять в базу данных, проблема в том, что большая часть данных будет та же самая, что выдаст ошибку.

Мне нужно сравнить CSV файил с данными в бд и если в CSV файле будет что то новое, для базы данных, добавить эти данные в новый CSV файл, который затем будет добовляться в бд(соотвественно без ошибок. потому что данные не повторяются)

Как можно сравнить их и выделить новые только в CSV файле?

Пока остановился на pandas и чтению таблицы:

df1 = pd.read_sql_table('auto', engine)
df2 = pd.read_csv(r'csv\ss.csv')

PS. Знаю про метод с временной таблицей в бд, но он мне не подходит

Пример части из БД:

ID   make     model  year
600  Toyota   Prius  2016
610  Toyota   Prius  2014
728  BMW      M5     2016
789  Ford     F-150  2016
823  Toyota   Auris  2016

Пример CSV файла:

ID   make     model  year
712  Toyota   Prius  2012
728  BMW      M5     2016
789  Ford     F-150  2016

То есть я хочу сделать, что бы csv файл с отличаеми попала только строка "712 Toyota Prius 2012"


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

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

Как можно сравнить их и выделить новые только в CSV файле?

если у вас датафреймы то выделить можно как-то так:

df2[~df2['ID'].isin(df1['ID'])]

>>> out
'''
    ID    make  model  year
0  712  Toyota  Prius  2012
→ Ссылка