Py学习  »  Python

手把手教你用Python批量实现文件夹下所有Excel文件的第二张表合并

Crossin的编程教室 • 3 年前 • 461 次点击  
入门教程、案例源码、学习资料、读者群

请访问: python666.cn


大家好,欢迎来到 Crossin的编程教室 !

    

今天继续给大家分享Python自动化办公的知识,


前言

前几天有同学留言提问:


问题:想向大佬们求教个问题,如果我有这样的需求,如何完成:

1、将A文件中名为a的sheet和B文件中名为b的sheet合并到一个sheet中去。

2、将文件夹下所有文件的第二张表合并。我做出来了,核心部分没有用pandas,而且逻辑比较繁琐。想求一用pandas解决的简洁方案。


二、解决思路

问题一和问题二的思路都挺常规的,就是取对应的表格,然后进行合并即可,这里仍然使用pandas来进行实现。


三、解决方法

问题一:将A文件中名为a的sheet和B文件中名为b的sheet合并到一个sheet中去。

这里基于之前【🌑(这是月亮的背面)】提供的代码,我稍微做了些修改,代码如下:

# coding: utf-8# 将A文件中名为a的sheet和B文件中名为b的sheet合并到一个sheet中去from pathlib import Pathimport pandas as pd
path = r'E:\PythonCrawler\有趣的代码\Python自动化办公\将A文件中名为a的sheet和B文件中名为b的sheet合并到一个sheet中去'data_ex1 = pd.read_excel('ex1.xlsx', sheet_name='df1')data_ex2 = pd.read_excel('ex2.xlsx', sheet_name='df2')result = pd.concat([data_ex1, data_ex2], ignore_index=True)result.to_excel('将A文件中名为a的sheet和B文件中名为b的sheet合并到一个sheet中去.xlsx', index=False, encoding='utf-8')print('添加和合并完成!')

代码运行之后,会生成一个新的excel文件,如下图所示:

合并的结果如下图所示:

完成之后,我发给【有点意思】大佬看,不过这个答案勉强符合他的意思,他后来自己也写了一个代码,能满足自己的需求,这里发给大家看看。

问题二:将文件夹下所有文件的第二张表合并

这里基于之前【🌑(这是月亮的背面)】提供的代码,我稍微做了些修改,代码如下:

# coding: utf-8# 合并所有表格中的第二张表格from pathlib import Pathimport pandas as pd
path = Path(r'E:\PythonCrawler\有趣的代码\Python自动化办公\将文件夹下所有文件的第二张表合并')data_list = []for i in path.glob("*.xls*"): # data = pd.read_excel(i, sheet_name='df2') data = pd.read_excel(i, sheet_name=1) data_list.append(data)
result = pd.concat(data_list, ignore_index=True) result.to_excel(path.joinpath('取所有excel表的df2表进行合并.xlsx'), index=False, encoding='utf-8')print('添加和合并完成!')

代码运行之后,会生成一个新的excel文件,如下图所示:

合并的结果如下图所示:

细心的小伙伴可能发现代码中的第9行,我其实是注释了,一开始我测试的表格,命名规则很有规范,每个工作簿都有df1,df2,df3三张表格,所以在合并的时候直接指定了表名,但是这样写就会有问题,万一有个表格中没有df2工作表,这个代码肯定就会报错了,所以在【🌑(这是月亮的背面)】大佬的指导下,使用了sheet_name=1参数,以索引来定位第二张表格,恰到好处,前提条件是你的Excel表格中必须要有第二张表格,否则就会出现下图的错误。


四、总结

本文基于粉丝针对Python处理Excel指定表格合并的提问,给出了一个利用Python基础+pandas处理的解决方案,完全满足了粉丝的要求。

最后感谢粉丝【有点意思】提问,感谢【🌑(这是月亮的背面)】、【dcpeng】大佬等提供的代码,感谢【冫马讠成】等人的参与探讨学习。文章针对两个问题,分别给出了一种解决方法,如果你也有其他的方法,也可以随时分享给我噢!人生苦短,我用python!

作者:Python进阶者

来源:Python爬虫与数据挖掘



Crossin的第2本书《码上行动:利用Python与ChatGPT高效搞定Excel数据分析》已经上市了

本书从 Python 和 Excel 结合使用的角度讲解处理分析数据的思路、方法与实战应用。不论是希望从事数据分析岗位的学习者,还是其他职业的办公人员,都可以通过本书的学习掌握 Python 分析数据的技能。书中创新性地将 ChatGPT 引入到教学当中,用 ChatGPT 答疑并提供实训代码,并介绍了使用 ChatGPT 辅助学习的一些实用技巧,给学习者带来全新的学习方式。


公众号的读者朋友们购买后可在后台联系我,加入读者交流群,Crossin会为你开启陪读模式,解答你在阅读本书时的一切疑问。


感谢转发点赞的各位~

_往期文章推荐_

一图胜千言,超形象图解NumPy教程!




如需了解付费精品课程教学答疑服务
请在Crossin的编程教室内回复: 666

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/159208