【发布时间】:2015-08-31 23:19:08
【问题描述】:
我正在使用 python pandas 从 MySQL 数据库加载数据,更改,然后更新另一个表。有 100,000 多行,因此 UPDATE 查询需要一些时间。
有没有比使用df.iterrows() 并为每一行运行UPDATE 查询更有效的方法来更新数据库中的数据?
【问题讨论】:
标签: python sql database pandas
我正在使用 python pandas 从 MySQL 数据库加载数据,更改,然后更新另一个表。有 100,000 多行,因此 UPDATE 查询需要一些时间。
有没有比使用df.iterrows() 并为每一行运行UPDATE 查询更有效的方法来更新数据库中的数据?
【问题讨论】:
标签: python sql database pandas
这里的问题不是pandas,而是UPDATE 操作。每行都会触发自己的UPDATE 查询,这意味着数据库连接器需要处理大量开销。
您最好使用df.to_csv('filename.csv') 方法将数据帧转储为 CSV,然后使用LOAD DATA INFILE 将该 CSV 文件读入您的 MySQL 数据库
将其加载到新表中,然后将 DROP 旧表和 RENAME 新表加载到旧表中。
此外,我建议您在将数据加载到 pandas 时也这样做。使用SELECT INTO OUTFILE MySQL 命令,然后使用pd.read_csv() 方法将该文件加载到pandas 中。
【讨论】: