超200万行pandas DataFrame无法导出至Excel,求解决方法
解决Pandas大DataFrame导出Excel行数超限的方案
以下是几个实用的解决办法:
1. 拆分数据到Excel的多个工作表
利用pandas.ExcelWriter将大DataFrame拆分成多个不超过Excel单表最大行数(1048576行)的子数据集,分别写入同一个Excel文件的不同工作表中。
示例代码:
import pandas as pd # 定义Excel单表最大行数 MAX_ROWS = 1048576 # 计算需要拆分的块数 num_chunks = len(new1) // MAX_ROWS + 1 # 创建ExcelWriter对象 with pd.ExcelWriter('combined.xlsx') as writer: for i in range(num_chunks): # 截取对应块的数据 chunk = new1[i*MAX_ROWS : (i+1)*MAX_ROWS] # 写入工作表,命名为Sheet_1、Sheet_2... chunk.to_excel(writer, sheet_name=f'Sheet_{i+1}', index=False, encoding='utf-8-sig')
2. 直接导出为CSV格式(无行数限制)
CSV格式本身没有行数上限,Excel也能直接打开大型CSV文件(打开时可能会弹出提示,但不影响读取完整数据)。如果不需要Excel的格式特性,这是最简便的方案,你已有的代码即可实现:
new1.to_csv("combined.csv", index=False, encoding='utf-8-sig')
3. 导出为大数据友好的结构化格式
如果需要保留结构化数据特性,可考虑导出为Feather或Parquet这类专为大数据设计的格式,后续能通过pandas轻松读取,部分Excel版本也可通过插件导入这类文件:
- Feather格式示例:
new1.to_feather('combined.feather')
- Parquet格式示例:
new1.to_parquet('combined.parquet')
内容的提问来源于stack exchange,提问作者Syed
相关产品推荐
相关产品推荐

