使用Python批量篩選上千個(gè)Excel文件中的某一行數(shù)據(jù)并另存為新Excel文件(上篇)
回復(fù)“書籍”即可獲贈(zèng)Python從入門到進(jìn)階共10本電子書
(相關(guān)資料圖)
今
日
雞
湯
離離原上草,一歲一枯榮。大家好,我是Python進(jìn)階者。
一、前言前幾天在幫助粉絲解決問題的時(shí)候,遇到一個(gè)簡單的小需求,這里拿出來跟大家一起分享,后面再次遇到的時(shí)候,可以從這里得到靈感。
二、需求澄清粉絲的問題來源于實(shí)際的需求,她現(xiàn)在想要使用Python批量篩選上千個(gè)Excel文件中的某一行數(shù)據(jù)并另存為新Excel文件,如果是正常操作的話,肯定是挨個(gè)點(diǎn)擊進(jìn)去Excel文件,然后CTRL+F找到滿足篩選條件的數(shù)據(jù),之后復(fù)制對(duì)應(yīng)的那一行,然后放到新建的Excel文件中去。
這樣做肯定是可以,但是當(dāng)有上百個(gè)文件夾需要復(fù)制呢?上千個(gè)文件呢?肯定就需要消耗大量的時(shí)間和精力了。估計(jì)一天都不一定完成的了。
這里使用Python進(jìn)行批量實(shí)現(xiàn),流程下來,1分鐘不到搞定!這里裝X了,其實(shí)碼代碼還是需要點(diǎn)時(shí)間的,狗頭保命!
下面這個(gè)代碼是初始代碼,可以實(shí)現(xiàn)的是篩選出來的每一行都另存為新文件,100個(gè)文件就存100個(gè)文件了。代碼如下:
importpandasaspdimportospath=r"./新建文件夾/"#獲取文件夾下的所有文件名name_list=os.listdir(path)name_list=(pd.DataFrame(name_list))#for循環(huán)遍歷讀取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])三、實(shí)現(xiàn)過程
這里給大家提供兩個(gè)可行的代碼,思路也很簡單,直接遍歷文件夾,然后加條件篩選,之后符合條件的,直接使用concat進(jìn)行合并,代碼如下:
importpandasaspdimportospath=r"./新建文件夾/"#獲取文件夾下的所有文件名name_list=os.listdir(path)name_list=pd.DataFrame(name_list)#計(jì)數(shù)器res=[]#for循環(huán)遍歷讀取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")
代碼運(yùn)行之后,就可以把某一文件夾下的所有Excel滿足篩選條件的Excel行,存到一個(gè)單獨(dú)的Excel中去。再也不用挨個(gè)去手動(dòng)復(fù)制了,使用Python事半功倍!
后來在【貓藥師Kelly】的指導(dǎo)下,還寫了一個(gè)新的代碼,也是可以的,思路和上面的差不多,代碼如下所示:
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")
實(shí)現(xiàn)的效果如下圖所示:
三、總結(jié)大家好,我是皮皮。這篇文章主要盤點(diǎn)一個(gè)Python自動(dòng)化辦公的實(shí)用案例,這個(gè)案例可以適用于實(shí)際工作中文件處理,大家也可以稍微改進(jìn)下,用于自己的實(shí)際工作中去,舉一反三。
大家在學(xué)習(xí)過程中如果有遇到問題,歡迎隨時(shí)聯(lián)系我解決(我的微信:pdcfighting),應(yīng)粉絲要求,我創(chuàng)建了一些高質(zhì)量的Python付費(fèi)學(xué)習(xí)交流群和付費(fèi)接單群,歡迎大家加入我的Python學(xué)習(xí)交流群和接單群!
小伙伴們,快快用實(shí)踐一下吧!如果在學(xué)習(xí)過程中,有遇到任何問題,歡迎加我好友,我拉你進(jìn)Python學(xué)習(xí)交流群共同探討學(xué)習(xí)。
-------------------End-------------------
往期精彩文章推薦:
盤點(diǎn)一個(gè)JS逆向過程中中文編解碼的小案例
盤點(diǎn)一個(gè)Python自動(dòng)化辦公實(shí)戰(zhàn)案例
盤點(diǎn)一個(gè)Pandas操作Excel多條件取值的實(shí)戰(zhàn)案例
盤點(diǎn)一個(gè)Python列表轉(zhuǎn)換為字典并排序的問題
歡迎大家點(diǎn)贊,留言,轉(zhuǎn)發(fā),轉(zhuǎn)載,感謝大家的相伴與支持
想加入Python學(xué)習(xí)群請(qǐng)?jiān)诤笈_(tái)回復(fù)【入群】
萬水千山總是情,點(diǎn)個(gè)【在看】行不行
/今日留言主題/
隨便說一兩句吧~~
關(guān)鍵詞: 新建文件夾 學(xué)習(xí)交流 離離原上草
相關(guān)閱讀
-
使用Python批量篩選上千個(gè)Excel文件中的...
點(diǎn)擊上方“Python爬蟲與數(shù)據(jù)挖掘”,進(jìn)行關(guān)注回復(fù)“書籍”即可獲贈(zèng)P... -
面試時(shí),最可怕的就是背調(diào)?_世界最資訊
按理說,如實(shí)的寫自己過去的經(jīng)歷,沒啥可怕的,但許多打工人對(duì)背調(diào)... -
國內(nèi)互卷的電商巨頭們,又要在海外交手...
最近刮起一陣電商出海潮,各大電商巨頭們?cè)诤M鈩?dòng)作頻頻。阿里重新... -
特斯拉上海被曝停產(chǎn)一周,股票暴跌,到...
最近聽到一句話,新冠陰性快清零了。其實(shí)特斯拉的股票……也快清零... -
劉強(qiáng)東所怒斥的,真的是PPT嗎? 當(dāng)前視點(diǎn)
四年前,明州事件鬧得沸沸揚(yáng)揚(yáng),劉強(qiáng)東逐漸慢慢淡出人們的視線,他... -
2022 年終總結(jié)
在12月31號(hào)晚上這天,打開朋友圈大家都在告別2022、迎接2023,我卻...