【发布时间】:2021-08-29 20:32:50
【问题描述】:
我正在尝试在 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)
【问题讨论】:
-
这能回答你的问题吗? stackoverflow.com/questions/47743741/…
-
aalways 将完整的错误消息(从单词“Traceback”开始)作为文本(不是屏幕截图,不是链接到外部门户)有问题(不是评论)。还有其他有用的信息。
-
我认为您以错误的方式使用
pd.concat- 也许您甚至不需要它。pd.concatnead 列表与许多dataframes连接它们 - 如果您使用sheet_name=None则read_excel可能会为您提供带有dataframes的列表(每张纸分开dataframe)但如果您使用名称,那么您只有一个dataframe与concatenate无关。如果你只有一个dataframe,那么你就不需要concatenate,或者你应该使用finalexcelsheet = pd.concat( [finalexcelsheet, pd.read_excel(...)], ...)。 -
首先您可以将
read_excel()分配给变量并检查使用sheet_name=None和sheet_name= 'Selected Sheet'时得到的结果
标签: python excel automation