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

开发 后端
本文基于粉丝针对Python处理Excel指定表格合并的提问,给出了一个利用Python基础+pandas处理的解决方案

前言

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

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

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

合并的结果如下图所示:

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

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

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


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

合并的结果如下图所示:

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

四、总结

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

责任编辑:姜华 来源: Python爬虫与数据挖掘
相关推荐

2021-02-10 09:34:40

Python文件的压缩PyCharm

2021-08-09 13:31:25

PythonExcel代码

2021-03-23 09:05:52

PythonExcelVlookup

2021-12-11 20:20:19

Python算法线性

2021-02-27 09:30:16

PythonExcelSheet

2022-03-29 11:11:11

TortoisGitGitee码云

2021-06-23 07:16:06

buildroot Linux内核根文件系统

2022-10-19 14:30:59

2021-05-10 06:48:11

Python腾讯招聘

2021-12-22 09:01:23

PythonExcelPython基础

2009-11-09 14:57:37

WCF上传文件

2022-04-01 20:29:26

Pandas数据存储

2021-02-02 13:31:35

Pycharm系统技巧Python

2017-10-27 10:29:35

人脸识别UbuntuPython

2021-02-06 14:55:05

大数据pandas数据分析

2011-03-28 16:14:38

jQuery

2021-02-04 09:00:57

SQLDjango原生

2021-05-08 08:04:05

Python爬取素材

2017-10-29 21:43:25

人脸识别

2022-08-04 10:39:23

Jenkins集成CD
点赞
收藏

51CTO技术栈公众号