Python:如何从一个excel文件中循环遍历多张工作表并将它们组合成一个数据框

Posted

技术标签:

【中文标题】Python:如何从一个excel文件中循环遍历多张工作表并将它们组合成一个数据框【英文标题】:Python: How to loop through multiple sheets from one excel file and combine them into one dataframe 【发布时间】:2021-08-14 07:10:34 【问题描述】:

我有一个 excel 文件,其中包含多个共享一些列和行(所有数字数据)的工作表。我发现了这个好问题,但并没有真正回答我的问题,Import multiple excel sheets from different files into python and concatenate them into one dataframe

我正在寻找一种方法来遍历位于单个 excel 文件中的所有工作表,并通过对共享的列和行求和来将它们组合到一个表中。

例如,一张纸:

  Subject   Modifier    Tech_A   Chart_A  Unknown_B  Tech_B
    A         Tech_A      1        4         1         2
    A         Chart_A     3        3         2         4
    B         Unknown_B   4        2         4         5
    B         Tech_B      5        1         3         3

另一张纸,

  Subject   Modifier    Tech_A  Chart_A  Unknown_A Unknown_B  Tech_B  Chart_B
    A         Tech_A      1        4         1         2        1       1
    A         Chart_A     3        3         2         4        3       2
    A         Unknown_A   1        2         5         3        3       4
    B         Unknown_B   4        2         4         5        5       3
    B         Tech_B      5        1         3         3        2       5
    B         Chart_B     1        1         2         4        2       0

合并后的单个文件会合并所有数据并对相似的数据求和,

  Subject   Modifier    Tech_A  Chart_A  Unknown_A Unknown_B  Tech_B  Chart_B
    A         Tech_A      2        8         1         3        3       1
    A         Chart_A     6        6         2         6        7       2
    A         Unknown_A   1        2         5         3        3       4
    B         Unknown_B   8        4         4         9        10      3
    B         Tech_B      10       2         3         6        6       5
    B         Chart_B     1        1         2         4        2       0

如何在 python 中实现这一点?

提前致谢

【问题讨论】:

【参考方案1】:

试试这样的:

df = pd.concat(pd.read_excel('2018_Sales_Total.xlsx', sheet_name=None), ignore_index=True)
df = df.groupby('Modifier').sum()

根据文档,将 sheet_name 指定为“无”,您将获得所有工作表。

【讨论】:

这会将所有内容放在一起。数据是巨大的,这将把一切都放在那里。有没有办法在添加它们时循环遍历工作表并求和? 我已经编辑了我的答案。通过执行groupby 并总结你应该得到你想要的值。 这计算了总和。但是不知何故,我得到了重复的列,而那些重复的列具有不同的值。感谢您的帮助!

以上是关于Python:如何从一个excel文件中循环遍历多张工作表并将它们组合成一个数据框的主要内容,如果未能解决你的问题,请参考以下文章

循环遍历指定文件夹中的所有 excel 文件,并从特定单元格中提取数据的代码

循环遍历excel文件做一些事情并将它们保存到新文件夹python pandas

Python,遍历 Excel 电子表格

循环遍历数据框字典中的数据框

Python:循环遍历 Excel 工作表,将标题信息分配给每个工作表上的列,然后合并到一个文件

Python / Pandas:循环遍历数字列表