当前位置: 首页 > 知识库问答 >
问题:

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

卢涵畅
2023-03-14

我是一个新手Python程序员,我有一个问题加载pd.read_excel()函数的xlsx工作簿。熊猫read_excel留档说,指定'sheet_name=无'应该返回"所有工作表作为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'

我不清楚为什么输出字典中没有列出工作表。任何提示都非常感谢。

共有2个答案

皇甫俊雅
2023-03-14

当我遇到同样的问题时,我通过谷歌找到了这篇文章。不幸的是,没有抛出错误,这不是很有帮助,所以我发布这个答案来帮助下一个可能找到这个的人。

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

我试图尽可能简化我的Excel文件,但仍然不起作用,所以我创建了一个新的Excel工作簿,并将数据逐页复制。这最终对我有用。

因此,我的建议是尽可能简单地保存Excel文件,并且您可能可以使用Pandas导入它。如果你把你的Excel文件发送过来,我很乐意帮你调试(我知道这是问题之后的几年)。

龚威
2023-03-14

将read_excel与多张工作表一起使用时,pandas将返回字典:

返回:数据帧或数据帧的Dict

如果你有字典,你可以用字典。方法查看文件选项卡,如中所示:

print(template_workbook.keys())
 类似资料:
  • 问题内容: 我有一个熊猫DataFrame ,。它包含一列“大小”,以字节为单位表示大小。我已经使用以下代码计算了KB,MB和GB: 我已经运行了超过120,000行,并且根据%timeit,每列花费的时间约为2.97秒* 3 =〜9秒。 无论如何,我可以使它更快吗?例如,我是否可以代替一次套用并运行3次而不是一次返回一列,而是可以一次通过返回所有三列以将其插入回原始数据帧吗? 我发现的其他问题都

  • 问题内容: 我正在研究猫鼬在mongodb中的数据库中列出一个集合中的所有数据: 根据要求: 我正在执行以下代码: 我已经在数据库中输入了条目,但是上面的代码返回了空值。为什么? 编辑:以下代码也返回空: 使用的架构: 问题答案: 您的问题是猫鼬将集合复数。猫鼬正在查询“组织”,但您的数据在mongodb中为“组织”。使它们匹配,您应该很好。您可以通过mongoshell在mongodb中对其重命

  • 问题内容: 我有一个Pandas Dataframe,如下所示: 我想用一个空字符串删除NaN值,使其看起来像这样: 问题答案: 这可能会有所帮助。它将用空字符串替换所有NaN。

  • 输入df。mean() 输出: 输入 (正确)输出: “a”中的类型值col=int 其他col具有str值 为什么会发生这种情况

  • 问题内容: 在Pandas中,当我选择一个索引中只有一个条目的标签时,我会得到一个“序列”,但是当我选择一个具有多于一个条目的标签时,我就会得到一个数据框。 这是为什么?有没有办法确保我总是取回数据帧? 问题答案: 可以肯定的是,这种行为是不一致的,但是我认为很容易想到这种情况很方便。无论如何,要每次获取一个DataFrame,只需将一个列表传递给即可。还有其他方法,但我认为这是最干净的方法。

  • 问题内容: 假设我有一个时间戳值的DataFrame : 我想创建一个新列。我可以通过编写一个简短的函数并使用它来迭代地创建它来创建它: 然后,我将看到以下结果: 什么我 想 实现的是这样一些较短的转变(我知道是错误的,但在精神得到): 显然,该列是类型的,因此没有这些属性,但是似乎有一种使用矩阵运算的简单方法。 有更直接的方法吗? 问题答案: 假设时间戳是数据帧的索引,则可以执行以下操作: 如果