熊猫pd.read_excel()返回空字典

时间:2018-06-22 21:47:48

标签: python excel pandas

我是Python新手,使用pd.read_excel()函数加载xlsx工作簿时遇到问题。熊猫read_excel文档说,指定'sheet_name = None'应该返回“所有表作为DataFrames的字典”,但是我得到了一个空字典:

template_workbook = pd.read_excel(template_path, sheet_name=None, index_col=None)
template_workbook

返回:

OrderedDict()

当我尝试在字典中打印工作表名称时:

template_workbook.sheet_name

返回:

AttributeErrorTraceback (most recent call last) 
<ipython-input-67 e76a0b915981> in <module>()
----> 1 template_workbook.sheet_name
AttributeError: 'OrderedDict' object has no attribute 'sheet_name'

我不清楚为什么工作表未在输出字典中列出。任何提示都将不胜感激。

我有26个标签/工作表,并尝试使用标签名称填充23个标签。 Here is a snip of one tab in the workbook - the fields in yellow are the ones to be filled after indexing by tab name

2 个答案:

答案 0 :(得分:0)

当您将read_excel与多张纸一起使用时,熊猫将返回一个字典:

  

返回:DataFrame或Dict of DataFrames

如果有字典,则可以使用.keys()方法查看文件选项卡,如下所示:

print(template_workbook.keys())

答案 1 :(得分:0)

我遇到同样的问题时,通过Google找到了这篇文章。不幸的是,没有引发任何错误,这不是很有帮助,所以我将发布此答案以帮助可能会发现此问题的下一个人。

Pandas中的read_excel函数并不完全支持所有Excel功能。这意味着,如果您使用的是某些高级Excel功能(命名范围),则当Pandas尝试读取Excel数据时,您的数据可能无法正确解析。

我试图尽可能简化我的Excel文件,但仍然无法正常工作,因此我创建了一个新的Excel Workbook,并逐页复制了数据。最终为我工作。

因此,我的建议是使您的Excel文件尽可能简单,并且您可能可以将其与Pandas一起导入。如果您发送了确切的Excel文件,我们很乐意帮助调试(不过,我知道这是问题提出的几年之后)。