问题描述
有时候,我们对数据表做了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的文件长度限制了