【问题标题】:sheet_name=None is causing an attribute errorsheet_name=None 导致属性错误
【发布时间】:2020-04-06 03:47:52
【问题描述】:

我有一个包含多张工作表的 Excel 工作表。我正在尝试将它们合并到 1 个 Dataframe 中,然后导出到只有 1 个工作表的 excel 工作表。我可以将信息放入一个数据框中,但是当我尝试导出时出现错误:

AttributeError: 'collections.OrderedDit' 对象没有属性 'to_excel'

脚本超级简单:

import pandas as pd df = pd.read_excel("E 59th Street.xlsx", sheet_name=None) df.to_excel("Grant_Test.xlsx")

这是错误:

df.to_excel("Grant_Test.xlsx")  AttributeError: 'collections.OrderedDict' object has no attribute 'to_excel'

我找不到任何添加 sheet_name=None 会导致此错误的原因。

我的脚本发生了什么?

【问题讨论】:

  • 因为返回的是 DataFrames 的字典,而不是一个 DataFrame。
  • 从文档中,设置sheet_name=None 参数:“无:所有工作表”,因此它将准备好每个工作表作为ordered_dict 中的一个元素。要取出一个 DF,您需要索引到 dict,然后仅在一个 DF 上调用 to_excel

标签: python excel pandas


【解决方案1】:

这使得df 变成了床单的OrderedDict

尝试这样做:

df.values()[0].to_excel("Grant_Test.xlsx")

说明

df 是您所有的工作表,当您执行 read_excel 时,您将获得所有工作表的 OrderedDict 对象

df.values() 让您获得所有 DataFrame 对象(您的床单)

df.values()[0]你只有一张,所以我们拿到第一张

【讨论】:

    猜你喜欢
    • 2016-07-29
    • 2018-09-28
    • 1970-01-01
    • 2016-11-19
    • 2021-06-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-11
    • 2019-12-20
    相关资源
    最近更新 更多