首页 > 解决方案 > 将同一个 excel 中的多张工作表导入 pandas 的一个数据框中

问题描述

我有一个excel 文件,上面有几个相同的结构化工作表(相同的标题和列数)(工作表名称:01,02,...,12)。

我怎样才能把它放到一个数据框中?

现在我会单独加载它:

df1 = pd.read_excel('path.xls', sheet_name='01')
df2 = pd.read_excel('path.xls', sheet_name='02')
...

然后将其浓缩。最pythonic的方法是什么,并直接获得一个包含所有工作表的数据框?还假设我事先不知道每个工作表名称。

标签: pythonexcelpandas

解决方案


将文件读取为:

collection =  pd.read_excel('path.xls', sheet_name=None)

combined = pd.concat([value.assign(sheet_source=key)
                      for key,value in collection.items()],
                     ignore_index=True)

sheet_name = None 确保读入所有工作表。collection

是一个字典,其中 sheet_name 作为键,实际数据作为值。

combine 使用 pandas concat 方法为您获取一个数据帧。

我添加了额外的列 sheet_source,以防您需要跟踪每行数据的来源。

您可以在 pandas doco上阅读更多相关信息


推荐阅读