Pandas 0.19.2 read_excel IndexError:列表索引超出范围

时间:2017-04-13 15:07:57

标签: python excel pandas

我正在寻找一个excel电子表格。我决定使用大熊猫,但直接被一个错误抓住了。

enter image description here

我从下面的代码开始,但使用完整路径并尝试设置工作表名称。

import pandas as pd

table = pd.read_excel('ss_12.xlsx')

if __name__ == '__main__':
    pass

excel电子表格与我的脚本文件位于同一目录中。我教过它在这个意义上和open()一样工作,如果它在同一个目录中,只需要一个名字。我在网上看了几个例子,然后按照它们的说法运行。

enter image description here

我正试图剥离上图中看到的第一列。完整错误(不确定如何格式化,抱歉)

C:\xx\Playpen\ConfigList_V1_0.xlsx
Traceback (most recent call last):
  File "C:\xx\Playpen\getConVars.py", line 12, in <module>
    pd.read_excel(excelFile)
  File "C:\xx\Programs\Python\Python35\lib\site-packages\pandas\io\excel.py", line 200, in read_excel
    **kwds)
  File "C:\xx\Programs\Python\Python35\lib\site-packages\pandas\io\excel.py", line 432, in _parse_excel
    sheet = self.book.sheet_by_index(asheetname)
  File "C:\xx\Programs\Python\Python35\lib\site-packages\xlrd\book.py", line 432, in sheet_by_index
    return self._sheet_list[sheetx] or self.get_sheet(sheetx)
IndexError: list index out of range

3 个答案:

答案 0 :(得分:4)

确保您具有正确的Excel电子表格。我遇到了同样的错误,并意识到我已将其保存为仍然具有.xlsx扩展名的Strict XML Open Spreadsheet。

答案 1 :(得分:1)

快速解决方案:创建一个全新文件(.xls),其中包含会给您错误的文件的内容。它对我有用。

答案 2 :(得分:0)

如果您只想阅读该文件,最好使用os.path,如下所示:

import os
import pandas as pd

dir = 'path_to_excel_file_directory'
excelFile = os.path.join(dir, 'fileName.xlsx')
pd.read_excel(excelFile)

如果excel文件与脚本位于同一目录中,您可以使用inspect自动检测它所在的目录:

scriptName = inspect.getframeinfo(inspect.currentframe()).filename
dir = os.path.dirname(os.path.abspath(filename))
excelFile = os.path.join(dir, 'fileName.xlsx')
pd.read_excel(excelFile)

最后一点:部分

if __name__ == '__main__':
    pass

与问题无关。