将大型 pandas 数据框导入已有 Excel 文件的最佳方法?
我有一个很大的 pandas
数据框,想把它放进一个已经存在的 Excel 文件里(简单来说,就是这个文件会用这些数据做一些 Excel 的操作,而我只想更新一个叫 raw_data
的标签页)。
目前我用的是这里的代码:如何在不覆盖数据的情况下写入已存在的 Excel 文件(使用 pandas)?,代码大概是这样的:
import pandas as pd
with pd.ExcelWriter('the_file.xlsx', engine='openpyxl', mode='a') as writer:
data_filtered.to_excel(writer, sheet_name="raw_data")
但是现在这个操作占用的内存和处理器资源太多,导致我的电脑每次都要卡十分钟。
我看到有一些解决方案可以把数据放到一个新的 Excel 文件里,但没有找到好的方法来覆盖一个已存在文件的某个标签页。
那么,最好的、最有效的方法是什么呢?我也考虑过先写入一个新的临时文件,然后再把这个临时文件复制到已有文件的 raw_data
标签页里——但最后的结果必须是更新了原来的文件。
非常感谢!
/YGA1 个回答
0
pd.ExcelWriter
有一个参数叫 if_sheet_exists
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.ExcelWriter.html
with pd.ExcelWriter(filestr, engine='openpyxl',mode='a', if_sheet_exists='replace') as writer:
df.to_excel(writer, sheet_name='Raw_Data')
这个参数会清空工作表里的内容和格式,然后用你的数据框替换掉它。
你需要至少使用 1.3.0 版本的 Pandas。