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

点击上方“Python爬虫与数据挖掘”,进行关注

回复“书籍”即可获赠Python从入门到进阶共10本电子书

怀君属秋夜,散步咏凉天。

    大家好,我是Python进阶者。今天继续给大家分享Python自动化办公的知识,之前也给大家分享过一些,感兴趣的话可以看看。

【Excel篇】

1、盘点4种使用Python批量合并同一文件夹内所有子文件夹下的Excel文件内所有Sheet数据

2、补充篇:盘点6种使用Python批量合并同一文件夹内所有子文件夹下的Excel文件内所有Sheet数据

3、手把手教你使用openpyxl库从Excel文件中提取指定的数据并生成新的文件(附源码)

4、手把手教你4种方法用Python批量实现多Excel多Sheet合并

5、手把手教你利用Python轻松拆分Excel为多个CSV文件

6、老板让我从几百个Excel中查找数据,我用Python一分钟搞定!

7、Python+Excel+Word一秒制作百份合同

8、Python 自动整理 Excel 表格

9、利用Python将Word试卷匹配转换为Excel表格

【未完待续......】

前言

    前几天发布了合并Excel的文章,补充篇:盘点6种使用Python批量合并同一文件夹内所有子文件夹下的Excel文件内所有Sheet数据,在留言区有个叫【有点意思】的粉丝在上面留言了两个问题,如下图所示。

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

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

    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 Path
import 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文件,如下图所示:

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

    合并的结果如下图所示:

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

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

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

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

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

# coding: utf-8
# 合并所有表格中的第二张表格
from pathlib import Path
import 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文件,如下图所示:

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

    合并的结果如下图所示:

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

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

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

四、总结

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

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

    更多Python自动化办公的相关代码,我已经上传到git,欢迎大家下载和star支持。

https://github.com/cassieeric/Python-office-automation

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

    小伙伴们,快快用实践一下吧!如果在学习过程中,有遇到任何问题,欢迎加我好友,我拉你进Python学习交流群共同探讨学习。

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

------------------- End -------------------

往期精彩文章推荐:

  • 补充篇:盘点6种使用Python批量合并同一文件夹内所有子文件夹下的Excel文件内所有Sheet数据

  • 盘点4种使用Python批量合并同一文件夹内所有子文件夹下的Excel文件内所有Sheet数据

  • 手把手教你使用Python网络爬虫实现邮件定时发送(附源码)

  • 番外篇:分享一道用Python基础+蒙特卡洛算法实现排列组合的题目(附源码)

0e5d634a3a4204e54f22ebb5127d3665.png

欢迎大家点赞,留言,转发,转载,感谢大家的相伴与支持

想加入Python学习群请在后台回复【入群

万水千山总是情,点个【在看】行不行

/今日留言主题/

随便说一两句吧~~

你可能感兴趣的:(python,人工智能,java,excel,大数据)