pandas to_excel如何突破65535的长度限制?

本文介绍如何在Pandas DataFrame处理后,通过设置`engine='openpyxl'`参数避免Excel文件长度限制,保持多级index的美观格式。遇到长度超过限制时,只需调整engine并继续导出。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述

有时候,我们对数据表做了groupby、set_index设置多级目录后,就会想把DataFrame的格式导出成Excel格式,而非csv格式。因为导出成csv格式,可能多级index的格式就会消失,当你要输出个漂亮的格式给人看的时候,csv显然是不如excel好看的。

不过,excel格式还有个蛋疼的缺点,那就是单个excel文件输出长度65535的限制。假如你的excel文件超长了,你大概会得到以下报错:

~/anaconda3/lib/python3.6/site-packages/xlwt/Worksheet.py in write_merge(self, r1, r2, c1, c2, label, style)
   1111     def write_merge(self, r1, r2, c1, c2, label="", style=Style.default_style):
   1112         assert 0 <= c1 <= c2 <= 255
-> 1113         assert 0 <= r1 <= r2 <= 65535
   1114         self.write(r1, c1, label, style)
   1115         if c2 > c1:

AssertionError: 

 也可能是这样的报错:

ValueError: This sheet is too large! Your sheet size is: ..., ... Max sheet size is: 1048576, 16384

问题解决

很简单 ,在to_excel中加一个参数即可:

df.to_excel('test.xls', engine='openpyxl')

注意engine参数,设置该值为’openpyxl’,即可忽略pandas输出excel的文件长度限制了

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_illusion_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值