• <big id="2pauu"><ruby id="2pauu"></ruby></big>
    <td id="2pauu"><ruby id="2pauu"></ruby></td>
    <p id="2pauu"><strong id="2pauu"><xmp id="2pauu"></xmp></strong></p>
    <td id="2pauu"></td>
    1. <tr id="2pauu"><strong id="2pauu"></strong></tr>
    2. 您的位置:首頁 >聚焦 >

      使用Python批量篩選上千個Excel文件中的某一行數據并另存為新Excel文件(上篇)

      2023-01-03 22:39:49    來源:程序員客棧
      點擊上方“Python爬蟲與數據挖掘”,進行關注

      回復“書籍”即可獲贈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學習群請在后臺回復【入群】

      萬水千山總是情,點個【在看】行不行

      /今日留言主題/

      隨便說一兩句吧~~

      關鍵詞: 新建文件夾 學習交流 離離原上草

      相關閱讀

      欧美性交网站
    3. <big id="2pauu"><ruby id="2pauu"></ruby></big>
      <td id="2pauu"><ruby id="2pauu"></ruby></td>
      <p id="2pauu"><strong id="2pauu"><xmp id="2pauu"></xmp></strong></p>
      <td id="2pauu"></td>
      1. <tr id="2pauu"><strong id="2pauu"></strong></tr>