【问题标题】:Check what values from a pandas dataframe are not in a SQL batabase检查 pandas 数据框中的哪些值不在 SQL 数据库中
【发布时间】:2019-11-21 09:37:09
【问题描述】:

我想检查 Pandas 数据框中的哪些值不在 SQL 数据库中。所以基本上是一个左连接(左边是 pandas df),其中右(SQL DB)键是 NULL。

数据库很大,大约有 500 万个条目,但我只对主键感兴趣。

Pandas 数据帧(50k 行)比 SQL DB(5M)小得多,所以我会 而是将数据移动到提供所有数据的数据库中

我考虑过在 SQL 中创建一个临时表并进行 LEFT JOIN,但可能只需要一个查询就可以完成

熊猫数据框:

    index   
    0        
    1  
    2  
    3  
    4

sql数据库:

    index(primary key)     
    1        
    2        
    3  

result: 0, 4

【问题讨论】:

    标签: python mysql sql sql-server pandas


    【解决方案1】:

    我想知道什么是“batabase”...谷歌没有帮助我:-)

    但是,如果我理解正确,我认为您应该在 SQL Server 中从数据框中创建一个单列临时表(正如您自己建议的那样),然后当然很容易找到它:

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

    使用索引主键应该很快。

    【讨论】:

    • 哎呀 :) 谢谢!我认为有一种方法可以在不创建表格的情况下做到这一点
    猜你喜欢
    • 2021-06-26
    • 2015-09-10
    • 2016-09-23
    • 2018-10-18
    • 2018-01-22
    • 2016-07-13
    • 2017-08-29
    • 1970-01-01
    相关资源
    最近更新 更多