获取 AttributeError: 'dict' object has no attribute 'parse' 。尝试读入多个 xlsx 文件时

Posted

技术标签:

【中文标题】获取 AttributeError: \'dict\' object has no attribute \'parse\' 。尝试读入多个 xlsx 文件时【英文标题】:Getting an AttributeError: 'dict' object has no attribute 'parse' . While trying to read into multiple xlsx files获取 AttributeError: 'dict' object has no attribute 'parse' 。尝试读入多个 xlsx 文件时 【发布时间】:2017-06-11 00:56:50 【问题描述】:

您好,我正在尝试将两个 excel 文件读取并打开到一个数据框中,但是出现此错误。

AttributeError: 'dict' object has no attribute 'parse'

我的目标是使用 pandas 并将这两个 xlsx 文件合并到一个数据框中。我这个怎么办。帮助赞赏这是我的代码如下:

# import modules
from IPython.display import display
import pandas as pd
import numpy as np
pd.set_option("display.max_rows", 999)
pd.set_option('max_colwidth',100)
%matplotlib inline

# filenames
file_names = ["data/OrderReport.xlsx", "data/OrderReport2.xlsx"]

reading_files = [(pd.read_excel(f, sheetname=None, parse_cols=None))for f in file_names]

frames = [x.parse(x.sheet_names[0], header=None,index_col=None) for x in reading_files]

【问题讨论】:

无法谈论更大的目标,但对于您的特定错误,请查看pandas.read_excel() documentation。传递 sheetname=None 会导致它返回一个 dict 数据帧。因此reading_files 是一个字典列表,x 将是一个字典,它没有parse() 方法。 我用实际有效的代码创建了另一个问题我唯一的问题是如果你可以查看这个列名,我没有取回列名,而是会感谢帮助!***.com/questions/41841757/…@glibdud跨度> 请不要在得到答案后改变问题的性质。如果您有新问题,请将其作为新问题发布。我已经回滚到以前的版本。如果您想使用您添加的任何信息,可以查看revision history。 【参考方案1】:

使用“新”read_excel 函数,它会创建一个 DataFrames 字典(如果您传递 sheetname=None),则无需调用 parse(因为没有 ExcelFile)。以前您必须创建一个ExcelFile,然后解析每个工作表。 见here。

因此,reading_files 是 DataFrame 的字典列表...目前尚不清楚您希望如何将其合并到单个 DataFrame (there's lots of choices!)。

【讨论】:

感谢您的回复,我对上面的代码进行了一些调整并让数据框正常工作,但我遇到了列名问题,如果您可以查看上面的内容,将不胜感激! @安迪·海登

以上是关于获取 AttributeError: 'dict' object has no attribute 'parse' 。尝试读入多个 xlsx 文件时的主要内容,如果未能解决你的问题,请参考以下文章

如何更正错误“AttributeError: 'dict_keys' object has no attribute 'remove'”?

AttributeError:“dict”对象没有属性“split”将逗号分隔的标签转换为列表

Django 频道实时聊天:AttributeError:“消息”对象没有属性“as_dict”

AttributeError: 'dict' object has no attribute 'iteritems'

AttributeError: 'dict_values' object has no attribute 'translate'

DeepFace.analyze:AttributeError:模块'keras.utils.generic_utils'没有属性'populate_dict_with_module_objects