全球观天下!使用Python批量筛选上千个Excel文件中的某一行数据并另存为新Excel文件(上篇)
点击上方“Python爬虫与数据挖掘”,进行关注回复“书籍”即可获赠Python从入门到进阶共10本电子书今日鸡汤离离原上草,一岁一枯荣。大家好,
回复“书籍”即可获赠Python从入门到进阶共10本电子书
(资料图片)
今
日
鸡
汤
离离原上草,一岁一枯荣。大家好,我是Python进阶者。
一、前言前几天在帮助粉丝解决问题的时候,遇到一个简单的小需求,这里拿出来跟大家一起分享,后面再次遇到的时候,可以从这里得到灵感。
二、需求澄清粉丝的问题来源于实际的需求,她现在想要使用Python批量筛选上千个Excel文件中的某一行数据并另存为新Excel文件,如果是正常操作的话,肯定是挨个点击进去Excel文件,然后CTRL+F找到满足筛选条件的数据,之后复制对应的那一行,然后放到新建的Excel文件中去。
这样做肯定是可以,但是当有上百个文件夹需要复制呢?上千个文件呢?肯定就需要消耗大量的时间和精力了。估计一天都不一定完成的了。
这里使用Python进行批量实现,流程下来,1分钟不到搞定!这里装X了,其实码代码还是需要点时间的,狗头保命!
下面这个代码是初始代码,可以实现的是筛选出来的每一行都另存为新文件,100个文件就存100个文件了。代码如下:
importpandasaspdimportospath=r"./新建文件夹/"#获取文件夹下的所有文件名name_list=os.listdir(path)name_list=(pd.DataFrame(name_list))#for循环遍历读取foriinrange(len(name_list)):df=pd.read_excel(path+name_list[0][i])print("{}读取完成!".format(i))hai=df[df["id"]=="58666"]hai.to_excel("./res/"+name_list[0][i])三、实现过程这里给大家提供两个可行的代码,思路也很简单,直接遍历文件夹,然后加条件筛选,之后符合条件的,直接使用concat进行合并,代码如下:
importpandasaspdimportospath=r"./新建文件夹/"#获取文件夹下的所有文件名name_list=os.listdir(path)name_list=pd.DataFrame(name_list)#计数器res=[]#for循环遍历读取foriinrange(len(name_list)):#len(name_list)等于21df=pd.read_excel(path+name_list[0][i])print("文件{}读取完成!".format(i))target_data=df[df["id"]=="58666"]#print(target_data)res.append(target_data)final_df=pd.concat(res)final_df.to_excel("target.xlsx")代码运行之后,就可以把某一文件夹下的所有Excel满足筛选条件的Excel行,存到一个单独的Excel中去。再也不用挨个去手动复制了,使用Python事半功倍!
后来在【猫药师Kelly】的指导下,还写了一个新的代码,也是可以的,思路和上面的差不多,代码如下所示:
importpandasaspdimportospath=r"./新建文件夹/"#获取文件夹下的所有文件名name_list=os.listdir(path)#print(name_list)#name_list=pd.DataFrame(name_list)#file_path=[xxx,xxx,xxx,......]res=pd.read_excel(path+name_list[0])res=res[res["id"]=="58666"]forfileinname_list[1:]:temp=pd.read_excel(path+file)temp=temp[temp["id"]=="58666"]res=pd.concat([res,temp],ignore_index=True)res.to_excel("res.xlsx")实现的效果如下图所示:
三、总结大家好,我是皮皮。这篇文章主要盘点一个Python自动化办公的实用案例,这个案例可以适用于实际工作中文件处理,大家也可以稍微改进下,用于自己的实际工作中去,举一反三。
大家在学习过程中如果有遇到问题,欢迎随时联系我解决(我的微信:pdcfighting),应粉丝要求,我创建了一些高质量的Python付费学习交流群和付费接单群,欢迎大家加入我的Python学习交流群和接单群!
小伙伴们,快快用实践一下吧!如果在学习过程中,有遇到任何问题,欢迎加我好友,我拉你进Python学习交流群共同探讨学习。
-------------------End-------------------
往期精彩文章推荐:
盘点一个JS逆向过程中中文编解码的小案例
盘点一个Python自动化办公实战案例
盘点一个Pandas操作Excel多条件取值的实战案例
盘点一个Python列表转换为字典并排序的问题
欢迎大家点赞,留言,转发,转载,感谢大家的相伴与支持
想加入Python学习群请在后台回复【入群】
万水千山总是情,点个【在看】行不行
/今日留言主题/
随便说一两句吧~~
点击上方“Python爬虫与数据挖掘”,进行关注回复“书籍”即可获赠Python从入门到进阶共10本电子书今日鸡汤离离原上草,一岁一枯荣。大家好,
南昌旅游一卡通可以去融创乐园吗?可以去融创乐园。2023年南昌旅游一卡通南昌地区免费景区名单:南昌地区(20家):滕王阁、寻梦滕王阁、摩天轮、
乐居财经孙肃博12月30日,许昌智能继电器股份有限公司于北交所递交招股书,民生证券为其独家保荐人。招股书显示,2019年-2021年及2022年上半年
是否应该被执行死刑由法律规定。拐卖儿童在以下情形中有情节特别严重的,才处死刑:(一)拐卖儿童集团的首要分子;(二)拐卖儿童三人以上的
证券时报网讯,中国物流与采购联合会和中储发展股份有限公司联合调查的中国仓储指数,2022年12月份为48 7%,受疫情影响,指数仍位于荣枯线以下
2022年12月31日13时许,75140次国际货运班列搭载着电子元件等货物,从广西凭祥火车站发出。
格隆汇12月31日丨纳指全年跌幅达33%,特斯拉、Meta跌超60%,亚马逊、英伟达、英特尔、AMD、奈飞惨遭腰斩;相比之下,医药、保健公司有着不错的
全聚德(002186)公告,公司股票自2022年12月16日至2022年12月30日股票交易已累计出现异常波动4次,股价波动较大,公司将就股票交易异常波动情
建筑工地安全工作总结第一篇按照《20xx年****建设工程安全生产监督管理工作要点》(**矿建处〔20xx〕6号)文件精神和《****建筑施工安全生产综
原标题:胜场分差创队史新纪录(引题)大胜福建队54分天津男篮新年献礼(主题)天津日报讯(记者李蓓)昨天,CBA常规赛继续进行,凭借着大卫·
黄磊的人生,颇有些传奇色彩。当演员并非他最初的本意,而且十分抵触,结果却事与愿违。来不及学表演就被陈凯歌“赶鸭子上架”,拉去拍电影。
时间风景回忆藏在远行的归途中我在这头故乡在那头人潮汹涌中每个人的心里都有一个共同的目标那就是踏上归途回家的路每个人即使再累也会坚持脚
盛屯矿业:盛屯矿业集团股份有限公司2022年第五次临时股东大会决议公告
截至2022年12月30日收盘,国机汽车(600335)报收于7 76元,较上周的7 96元下跌2 51%。本周,国机汽车12月26日盘中最高价报8 3元。12月29日盘
证券时报e公司讯,中信证券(600030)研报认为,2023年可能是A H股表现亮眼的一年,理由包括:①国内防疫政策放松后,经济增速回升带动盈利预期
2022年12月29日泰坦科技连续3日融资净偿还累计609 3万元
朝阳永续作为数据支持机构,倾力赋能2022新财富最佳分析师评选!
截至2021年,一路·纯悦公益徒步累计超3 4万人次参与,共筹集善款超过360万元,为183所福建乡村小学安装了299台净水器,用爱心呵护孩子们的童年。
据韩国国际广播电台29日报道,继出口之后,韩国国内消费也呈现出放缓趋势,消费指标连续三个月下滑。韩国政府还预测,明年出口同比下降4 5%,
玉龙股份(SH601028,收盘价:13 58元)12月28日晚间发布公告称,2022年12月28日,公司接到董事、高级管理人员及中层管理人员拟以自有资金通过上
同花顺数据中心显示,神马电力12月28日获融资买入2182 49万元,占当日买入金额的13 93%,当前融资余额4677 72万元,占流通市值的0 65%,超过历
点蓝色字关注“机器学习算法工程师”设为星标,干货直达!近日,LAION等机构在Reproduciblescalinglawsforcontrastive
喜提放假450天,这是什么感受?前段时间,广东某企业就发布了一则放假通知,称该公司春节放假时间自2022年12月1日至2024年2月21日,放假450天。450
本文编辑剧透社:小彤现年35岁的港姐陈庭欣与坐拥10亿身家的彩丰行老板杨振源(Benny)拍拖至今已经有四年的时间了,之间的感情基础算是比较稳
乘风破浪,是一个大山少年成为环球船长的故事,也是千千万万个逐梦人,满载梦想从中国走向世界的故事。12月22日,比亚迪发布梦想起航片《乘风
Copyright 2015-2022 北方酒业网 版权所有 备案号:京ICP备2021034106号-50 联系邮箱: 55 16 53 8@qq.com