You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Pandas快速将数十万行DataFrame写入Excel?

解决大数据DataFrame快速写入Excel的方案

你遇到的问题是传统Excel写入引擎(如xlsxwriter、openpyxl默认模式)处理超大数据量时的典型性能瓶颈——这类引擎多采用逐行/逐单元格写入的机制,在几十万行数据场景下会产生极大的开销。以下是几个能实现秒级写入的可行方案:

方案1:使用PyExcelerate(性能最优选择)

PyExcelerate是专为高性能Excel写入设计的库,它直接操作Excel底层结构,规避了逐单元格写入的低效问题,几十万行数据写入通常仅需几秒。

操作步骤:

  1. 安装依赖库:
pip install pyexcelerate
  1. 转换并写入数据:
from pyexcelerate import Workbook
import pandas as pd

# 若不需要表头,可去掉[df.columns.tolist()]部分
data = [df.columns.tolist()] + df.values.tolist()
wb = Workbook()
wb.new_sheet("My Report", data=data)
wb.save("filepath/file.xlsx")

如果需要从第8行开始写入(对应原代码的startrow=8),只需在数据前插入7行空列表:

empty_rows = [[] for _ in range(7)]
# 无需表头则移除[df.columns.tolist()]
data = empty_rows + [df.columns.tolist()] + df.values.tolist()
wb.new_sheet("My Report", data=data)

方案2:用openpyxl的写入优化模式

openpyxl支持write_only模式,该模式不会在内存中缓存整个工作表,而是直接向磁盘写入数据,性能比默认模式提升显著。

代码示例:

from openpyxl import Workbook
import pandas as pd

writer = pd.ExcelWriter('filepath/file.xlsx', engine='openpyxl', mode='w')
# 启用write_only模式
writer.book = Workbook(write_only=True)
writer.sheets = {}

# 按需求从第8行开始写入数据
df.to_excel(writer, sheet_name='My Report', startrow=8, index=False, header=False)
writer.close()

方案3:分块写入(适配内存有限场景)

如果机器内存不足,可以将DataFrame拆分为若干小块分批写入,总耗时虽略逊于PyExcelerate,但也能大幅压缩到分钟级甚至秒级,具体取决于分块大小。

代码示例:

import pandas as pd

chunk_size = 100000  # 每批次处理10万行
writer = pd.ExcelWriter('filepath/file.xlsx', engine='xlsxwriter')

# 先在第8行位置插入空行(xlsxwriter行索引从0开始,第8行对应索引7)
worksheet = writer.book.add_worksheet('My Report')
worksheet.write_row(7, 0, [])

start_row = 8
for _, chunk in enumerate(df.groupby(df.index // chunk_size)):
    chunk[1].to_excel(writer, sheet_name='My Report', startrow=start_row, index=False, header=False)
    start_row += len(chunk[1])

writer.close()

额外提示:

  • 写入时尽量避免设置复杂格式(如单元格样式、条件格式),这类操作会大幅增加耗时,若需格式可在写入完成后单独处理。
  • 如果无需Excel格式功能,优先导出为CSV格式(写入速度可达毫秒级),后续可通过Excel直接打开CSV并另存为xlsx格式。

内容的提问来源于stack exchange,提问作者shashank verma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 14:00:04