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