多文件夹下Excel指定列的提取合并
IT共享之家
共 3864字,需浏览 8分钟
·
2024-08-03 10:24
回复“书籍”即可获赠Python从入门到进阶共10本电子书
一、前言
大家好,我是崔艳飞,工作中经常遇到,从多个文件夹下的Excel中,提取指定列,再合并成新的Excel。几个文件夹还能应付,但要是有成百上千个文件夹,你就要哭了,本文针对此问题,实现Python自动处理。
二、导入库
只需导入OS库,进行文件查询,和pandas库进行数据处理。
import pandas as pd
import os
三、编写代码
1. 定义要提取Excel的总文件夹路径
输入要提取的文件夹、定义要提取的列、指定要保存输出结果的文件位置
#要提取EXCEL的总文件夹路径
path="D:/a/"
# 定义要提取的列名
key=['A','B']
path2 = os.listdir(path)
#定义输出合并结果文件名
bb = path + 'result.xlsx'
writer = pd.ExcelWriter(bb,engine='openpyxl')
2. 获取所有待提取的Excel文件List
file_names=[]
for p in path2:
if '.xl' in p:
continue
path3=path+p+"/"
#获取文件夹下所有EXCEL名
xlsx_names = [x for x in os.listdir(path3) if x.endswith(".xlsx")]
for f in xlsx_names:
file_names.append(path3+f)
3. 循环读取所有Excel,提取指定列进行合并
df = None
for xlsx_name in file_names:
df1 = pd.read_excel(xlsx_name, sheet_name=0, index_col=None,header=0)
_df=df1.loc[:, key]
if df is None:
df = _df
else:
df = pd.concat([df, _df], ignore_index=True)
print(xlsx_name + " 保存成功!共%d个,第%d个。" % (len(file_names), num))
四、执行效果
所有待提取合并的文件夹如下图:
执行代码成功:
保存结果文件:
提取结果文件内容如下:
五、总结
本文介绍了利用Pandas对批量Excel进行提取合并的有关操作。通过代码的演示、运行效果的展示,对Pandas的强大功能有了进一步地了解。有你真好,我爱Python。
大家在学习过程中如果有遇到问题,欢迎随时联系我解决(我的微信:pdcfighting),应粉丝要求,我创建了一些高质量的Python付费学习交流群和付费接单群,欢迎大家加入我的Python学习交流群和接单群!
小伙伴们,快快用实践一下吧!如果在学习过程中,有遇到任何问题,欢迎加我好友,我拉你进Python学习交流群共同探讨学习。
------------------- End -------------------
往期精彩文章推荐:
欢迎大家点赞,留言,转发,转载,感谢大家的相伴与支持
想加入Python学习群请在后台回复【入群】
万水千山总是情,点个【在看】行不行
/今日留言主题/
随便说一两句吧~~
评论