【问题标题】:Pandas to_sql replace duplicatesPandas to_sql 替换重复项
【发布时间】:2016-05-04 10:53:37
【问题描述】:

我每秒都向 API 发出请求,参数为 since(返回自上次请求以来的更改)我将其转换为数据帧,并希望通过替换重复行将其快速插入 MySQL:

REPLACE INTO table (column1,column2...) VALUES (val1,val2...) 

我真的很喜欢函数DataFrame.to_sql,但问题是它没有替换重复行选项。我可以看到 DataFrame.to_sql 的方式是每次删除表并使用选项 if_exists: replace 重新创建它,但我认为它会显着影响性能。您能建议用替换重复值从数据框中插入数据的更好方法吗?

【问题讨论】:

    标签: python python-2.7 python-3.x pandas


    【解决方案1】:

    如果您的 DF 不是那么大,您可以遍历它,生成 INSERT ... ON DUPLICATE KEY UPDATE SQL 并在您的 MySQL 数据库中执行它们。

    【讨论】:

      【解决方案2】:

      似乎没有办法用 Pandas 中的 DataFrame.to_sql 替换重复项。希望他们将来会集成此功能。我设法找到了一个关于如何忽略重复项的post,但就我而言,我只是决定选择另一种方法,正如@MaxU 提到的那样遍历 Dataframe 并执行

      REPLACE INTO table (column1,column2...) VALUES (val1,val2...)  
      

      【讨论】:

        猜你喜欢
        • 2021-01-07
        • 1970-01-01
        • 2015-07-31
        • 1970-01-01
        • 1970-01-01
        • 2021-01-24
        • 2014-09-12
        • 2018-04-09
        • 2017-05-24
        相关资源
        最近更新 更多