将大型 pandas 数据框导入已有 Excel 文件的最佳方法?

0 投票
1 回答
56 浏览
提问于 2025-04-13 14:55

我有一个很大的 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 标签页里——但最后的结果必须是更新了原来的文件。

非常感谢!

/YGA

1 个回答

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。

撰写回答