使用Python批量筛选上千个Excel文件中的某一行数据并另存为新Excel文件(上篇)
回复“书籍”即可获赠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学习群请在后台回复【入群】
万水千山总是情,点个【在看】行不行
/今日留言主题/
随便说一两句吧~~
-
大金重工(002487)1月4日主力资金净卖出5429.03万元|世界观焦点
2023-01-04
-
岳麓书院能开车进去吗?
2023-01-04
-
即时看!东易日盛1月4日快速上涨
2023-01-04
-
环球短讯!中国广电5G突围:沉默的9亿人与“五环外”的700MHz
2023-01-04
-
世界热议:济民可信立幸(盐酸多柔比星脂质体注射液)通过一致性评价
2023-01-03
-
天天快资讯丨房子塌了!一当红小鲜肉被爆脚踏两只船,网友:龙丹妮的报应
2023-01-03
-
全球微动态丨异动快报:海量数据(603138)1月3日14点25分触及涨停板
2023-01-03
-
杭州解百董秘回复:相关事项如有进展情况,公司将按照相关法律法规的要求及时履行信息披露义务
2023-01-03
-
国轩高科:公司不断提高技术转化率,提升产品竞争力,从而提高公司议价能力,缩短账期
2023-01-03
-
大金重工(002487)1月4日主力资金净卖出5429.03万元|世界观焦点
2023-01-04
-
岳麓书院能开车进去吗?
2023-01-04
-
即时看!东易日盛1月4日快速上涨
2023-01-04
-
环球短讯!中国广电5G突围:沉默的9亿人与“五环外”的700MHz
2023-01-04
-
世界热议:济民可信立幸(盐酸多柔比星脂质体注射液)通过一致性评价
2023-01-03
-
天天快资讯丨房子塌了!一当红小鲜肉被爆脚踏两只船,网友:龙丹妮的报应
2023-01-03
-
全球微动态丨异动快报:海量数据(603138)1月3日14点25分触及涨停板
2023-01-03
-
杭州解百董秘回复:相关事项如有进展情况,公司将按照相关法律法规的要求及时履行信息披露义务
2023-01-03
-
国轩高科:公司不断提高技术转化率,提升产品竞争力,从而提高公司议价能力,缩短账期
2023-01-03
-
五月份樱桃句子(精选219句)
2023-01-03
-
热推荐:客流持续上升 各个商圈景区消费热
2023-01-02
-
42岁一线知名主持人不幸病逝!曾多次主持春晚,圈内众星发文悼念-全球独家
2023-01-02
-
Python 打印彩色日志_世界最资讯
2023-01-01
-
我的2023新春寄语 | 10位文化名人陪你跨年!
2023-01-01
-
天天资讯:境外媒体关注:中国旅游业回稳向好势头明显
2022-12-31
-
华润三九(000999.SZ):昆药集团28%股份已过户至公司名下 世界实时
2022-12-30
-
佛山个人无犯罪证明网上办理指南(入口+流程)_天天视讯
2022-12-30
-
戴德梁行:香港和上海仍是中国商业地产最具吸引力投资目的地|全球讯息
2022-12-30
-
全球今日报丨医保这一年:综合保障能力加强 惠及百姓民生
2022-12-30
-
贵阳观山湖区非急危重症转运专班电话是多少|环球播资讯
2022-12-29
-
我国生态环境建设取得巨大成效
2022-12-29
-
全球热门:佛山顺德龙江核酸检测地点最新汇总(持续更新)
2022-12-29
-
世界热议:依米康(300249.SZ):江苏亿金拟将辽宁亿金70%股权转让给江苏贝吉
2022-12-29
-
思源电气(002028.SZ):拟以6.18亿元收购烯晶碳能41.1985%的股权
2022-12-29
-
祝爸爸一路走好的句子(精选371句)
2022-12-28
-
山西省汾西县车辆违章处理费-当前快讯
2022-12-28
-
绿叶制药:LY03010上市申请已获国家药监局受理|世界观焦点
2022-12-28
-
Alex 2022年最后一次水逆对12星座的影响|最新快讯
2022-12-28