将read_excel中的多个Excel工作表循环到Pandas中的串联数据框中

时间:2019-01-07 16:02:51

标签: python excel pandas dataframe

我有一个文件,该文件的每个“基金”都有一个标签,这些标签在其自己的单独标签上被引用。我想将所有这些都读取到一个串联的数据框中。我使用下面的方法以非常手动的方式进行操作,但是工作表的数量可能会发生变化。

xls = pd.ExcelFile(threeDaysFile)
fund0000 = pd.read_excel(xls, 0)
fund0001 = pd.read_excel(xls, 1)
fund0002 = pd.read_excel(xls, 2)
fund0003 = pd.read_excel(xls, 3)
fund0004 = pd.read_excel(xls, 4)
all_funds = pd.concat([fund0000, fund0001, 
fund0002, fund0003, fund0004])

是否有一种有效的方法将其写入上下文相关的循环中,该循环将仅引入当前文件中的所有工作表并将它们连接到主文件中?

1 个答案:

答案 0 :(得分:3)

尝试使用xls.sheet_names

pd.concat([pd.read_excel(file_name, sheetname=x) for x in xls.sheet_names])

如果您需要数据来自哪个表

pd.concat([pd.read_excel(file_name, sheetname=x) for x in xls.sheet_names],keys=xls.sheet_names)