Проверьте, какие значения из фрейма данных pandas отсутствуют в базе данных SQL - PullRequest
2 голосов
/ 11 июля 2019

Я хочу проверить, какие значения из фрейма данных pandas отсутствуют в базе данных SQL.Таким образом, в основном это левое соединение (слева - pandas df), где правый ключ (SQL DB) имеет значение NULL.

БД довольно большая, около 5 миллионов записей, но меня интересует только первичный ключ.

Pandas dataframe (50k строк) намного меньше, чем SQL DB (5M), поэтому я бы предпочел переместить данные в базу данных, которая принесет все это

Я думал о созданиивременная таблица в SQL и создание LEFT JOIN, но это может быть возможно сделать просто запросом

pandas dataframe:

    index   
    0        
    1  
    2  
    3  
    4

sql база данных:

    index(primary key)     
    1        
    2        
    3  

result: 0, 4

1 Ответ

0 голосов
/ 11 июля 2019

Интересно, что такое "база данных" ... Google не помог мне в этом: -)

Однако, если я правильно понимаю, я думаю, что вы должны создать временную таблицу из одного столбца на SQL-сервере из фрейма данных (как вы сами себе предложили), и тогда, конечно, будет легко найти ее так:

SELECT P.Index 
FROM PandasTable as P 
WHERE P.Index NOT IN 
    (SELECT B.Index FROM BatabaseTable)

Должно быть довольно быстро с индексированными первичными ключами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...