您的位置: 网站首页> 大家问> 当前文章
IndexError: index 0 is out of bounds for axis 0 with size 0
老董2022-03-21198围观,134赞
在用pandas时遇到了一个错误:IndexError: index 0 is out of bounds for axis 0 with size 0。看报错意思大概可以猜到是个空df引发的问题,因为报错提示index 0。具体是哪一步操作导致错误产生呢?
经过反复测试,要产生这个报错需要具备3个条件:
1、首先需要1个空df
2、对空df设置二维索引
3、把设置二维索引的空df写入excel会报错。
我们用代码来演示一下:
# -*- coding:UTF-8 -*- df = pd.DataFrame(columns=['name','age','hobby','higth']) print(df) df.set_index(['name','age'],inplace=True) df.to_excel('aa.xlsx')
Empty DataFrame Columns: [name, age, hobby, higth] Index: [] Traceback (most recent call last): File "C:\Users\dong\Desktop\test\test.py", line 11, in <module> df.to_excel('aa.xlsx') File "D:\install\pyinstall\lib\site-packages\pandas\core\generic.py", line 2284, in to_excel formatter.write( File "D:\install\pyinstall\lib\site-packages\pandas\io\formats\excel.py", line 840, in write writer.write_cells( File "D:\install\pyinstall\lib\site-packages\pandas\io\excel\_xlsxwriter.py", line 227, in write_cells for cell in cells: File "D:\install\pyinstall\lib\site-packages\pandas\io\formats\excel.py", line 777, in get_formatted_cells for cell in itertools.chain(self._format_header(), self._format_body()): File "D:\install\pyinstall\lib\site-packages\pandas\io\formats\excel.py", line 596, in _format_header_regular coloffset = len(self.df.index[0]) File "D:\install\pyinstall\lib\site-packages\pandas\core\indexes\multi.py", line 2042, in __getitem__ if level_codes[key] == -1: IndexError: index 0 is out of bounds for axis 0 with size 0
如果不设置二维索引,一维索引的空df写入excel是没问题的,代码如下:
# -*- coding:UTF-8 -*- df = pd.DataFrame(columns=['name','age','hobby','higth']) print(df) df.set_index(['name','age'],inplace=True) print('ok')
Empty DataFrame Columns: [name, age, hobby, higth] Index: [] ok
如果像系统的学习pandas实战教程,可以参考这个目录pandas教程。
很赞哦!
python编程网提示:转载请注明来源www.python66.com。
有宝贵意见可添加站长微信(底部),获取技术资料请到公众号(底部)。同行交流请加群
下一篇:python四舍五入精确实现
文章评论
-
IndexError: index 0 is out of bounds for axis 0 with size 0文章写得不错,值得赞赏