如何使用循环[duplicate]读取python数据框中具有多个工作簿的多个Xlsx文件

问题描述 投票:0回答:2

此问题已经在这里有了答案:

我有15个xlsx文件,每个文件都有多个工作表。我想以这样一种方式动态地循环它:所有工作表和工作簿都在一个数据框中读取。

我曾尝试通过以下方式使用pd.read_excel


filenames = glob.glob("*.xlsx")
dfList=[]
colnames =['dummy','dummy1','dummy2']
for a in filenames:
    df=pd.read_excel(a, sheet_name=None, header = None, encoding = "ISO-8859-1")
    dfList.append(df)

df= pd.concat(dfList, axis=0, ignore_index= True)
df.columns= colnames

我运行pd.concat时收到的错误是

TypeError: cannot concatenate object of type "<class 'collections.OrderedDict'>"; only pd.Series, pd.DataFrame, and pd.Panel (deprecated) objs are valid

并且也尝试过

for a in filenames:
    df=[pd.read_excel(a, sheet_name=None, header = None, encoding = "ISO-8859-1").values()]
    dfList.append(df)

我收到以下错误

TypeError: cannot concatenate object of type "<class 'collections.OrderedDict'>"; only pd.Series, pd.DataFrame, and pd.Panel (deprecated) objs are valid
python pandas spyder
2个回答
0
投票

您为什么需要concat?您可以使用df = pd.DataFrame(dfList)将您的列表转换为数据框吗?>


0
投票

我认为您需要更改:

© www.soinside.com 2019 - 2024. All rights reserved.