在Python中将多个Excel文件附加到一个Excel文件时出错

2024-10-01 11:33:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试图用Python将10个Excel文件附加到一个文件中

下面的代码已被使用,我正在获取

TypeError: first argument must be an iterable of pandas objects, 
you passed an object of type "DataFrame"

一旦我将sheet_name参数更改为None,代码就会完美地运行。 但是,所有10个excel文件都有三张工作表,我只希望每个excel文件有特定的工作表。 有什么办法可以完成吗

谢谢你的帮助

  import pandas as pd
    import glob
    path = r'Folder path'
    filenames = glob.glob(path + "\*.xlsx")
    finalexcelsheet = pd.DataFrame()
    for file in filenames:
        df = pd.concat(pd.read_excel(file, sheet_name= 'Selected Sheet'), ignore_index=True,sort=False)
        finalexcelsheet=finalexcelsheet.append(df,ignore_index=True) 

Tags: 文件ofpath代码nameimportandataframe
1条回答
网友
1楼 · 发布于 2024-10-01 11:33:33

我无法测试它,但问题是因为您以错误的方式使用了concat,或者更确切地说,因为在您的情况下不需要concat


concat需要类似dataframes的列表

concat( [df1, df2, ...], ...)

但是read_excel为不同的sheet_name=...提供了不同的对象,这就产生了问题

read_excelforsheet_name=None返回列表或dict,其中所有工作表都在分隔的dataFrames

[df_sheet_1, df_sheet_2, ...]

然后concat可以将它们连接到一个dataframe

read_excelforsheet_name=name返回单个dataframe

df_sheet

然后concat没有任何联合-并且它给出了错误。
但这意味着你不需要concat

您应该直接将read_excel分配给df

for file in filenames:
    df = pd.read_excel(file, sheet_name='Selected Sheet')
    finalexcelsheet = finalexcelsheet.append(df, ignore_index=True) 

相关问题 更多 >