我正在使用python pandas从MySQL数据库加载数据,更改,然后更新另一个表。有超过100,000行,因此UPDATE查询需要一些时间。
更新数据库中的数据是否比使用df.iterrows()
更有效,并为每行运行UPDATE
查询?
答案 0 :(得分:3)
这里的问题不是熊猫,而是UPDATE
操作。每一行都会触发自己的UPDATE
查询,这意味着数据库连接器需要处理很多开销。
最好使用df.to_csv('filename.csv')
方法将数据帧转储为CSV,然后使用LOAD DATA INFILE
将其加载到新表格中,然后将DROP
旧表格加载到RENAME
新表格中加载旧表格。
此外,我建议您在将数据加载到pandas时也这样做。使用SELECT INTO OUTFILE
MySQL命令,然后使用pd.read_csv()
方法将该文件加载到pandas中。