<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

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

          共 3046字,需瀏覽 7分鐘

           ·

          2023-01-03 22:07

          點(diǎn)擊上方“Python爬蟲(chóng)與數(shù)據(jù)挖掘”,進(jìn)行關(guān)注

          回復(fù)“書(shū)籍”即可獲贈(zèng)Python從入門(mén)到進(jìn)階共10本電子書(shū)

          離離原上草,一歲一枯榮。

          大家好,我是Python進(jìn)階者。

          一、前言

          前幾天在幫助粉絲解決問(wèn)題的時(shí)候,遇到一個(gè)簡(jiǎn)單的小需求,這里拿出來(lái)跟大家一起分享,后面再次遇到的時(shí)候,可以從這里得到靈感。

          二、需求澄清

          粉絲的問(wèn)題來(lái)源于實(shí)際的需求,她現(xiàn)在想要使用Python批量篩選上千個(gè)Excel文件中的某一行數(shù)據(jù)并另存為新Excel文件,如果是正常操作的話(huà),肯定是挨個(gè)點(diǎn)擊進(jìn)去Excel文件,然后CTRL+F找到滿(mǎn)足篩選條件的數(shù)據(jù),之后復(fù)制對(duì)應(yīng)的那一行,然后放到新建的Excel文件中去。

          這樣做肯定是可以,但是當(dāng)有上百個(gè)文件夾需要復(fù)制呢?上千個(gè)文件呢?肯定就需要消耗大量的時(shí)間和精力了。估計(jì)一天都不一定完成的了。

          這里使用Python進(jìn)行批量實(shí)現(xiàn),流程下來(lái),1分鐘不到搞定!這里裝X了,其實(shí)碼代碼還是需要點(diǎn)時(shí)間的,狗頭保命!

          下面這個(gè)代碼是初始代碼,可以實(shí)現(xiàn)的是篩選出來(lái)的每一行都另存為新文件,100個(gè)文件就存100個(gè)文件了。代碼如下:

          import pandas as pd
          import os

          path = r"./新建文件夾/"
          # 獲取文件夾下的所有文件名
          name_list = os.listdir(path)
          name_list = (pd.DataFrame(name_list))


          # for循環(huán)遍歷讀取
          for i in range(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)過(guò)程

          這里給大家提供兩個(gè)可行的代碼,思路也很簡(jiǎn)單,直接遍歷文件夾,然后加條件篩選,之后符合條件的,直接使用concat進(jìn)行合并,代碼如下:

          import pandas as pd
          import os

          path = r"./新建文件夾/"
          # 獲取文件夾下的所有文件名
          name_list = os.listdir(path)
          name_list = pd.DataFrame(name_list)

          # 計(jì)數(shù)器
          res = []

          # for循環(huán)遍歷讀取
          for i in range(len(name_list)):  # len(name_list)等于21
              df = 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滿(mǎn)足篩選條件的Excel行,存到一個(gè)單獨(dú)的Excel中去。再也不用挨個(gè)去手動(dòng)復(fù)制了,使用Python事半功倍!

          后來(lái)在【貓藥師Kelly】的指導(dǎo)下,還寫(xiě)了一個(gè)新的代碼,也是可以的,思路和上面的差不多,代碼如下所示:

          import pandas as pd
          import os


          path = 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']

          for file in name_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é)

          大家好,我是皮皮。這篇文章主要盤(pán)點(diǎn)一個(gè)Python自動(dòng)化辦公的實(shí)用案例,這個(gè)案例可以適用于實(shí)際工作中文件處理,大家也可以稍微改進(jìn)下,用于自己的實(shí)際工作中去,舉一反三。

          大家在學(xué)習(xí)過(guò)程中如果有遇到問(wèn)題,歡迎隨時(shí)聯(lián)系我解決(我的微信:pdcfighting),應(yīng)粉絲要求,我創(chuàng)建了一些高質(zhì)量的Python付費(fèi)學(xué)習(xí)交流群和付費(fèi)接單群,歡迎大家加入我的Python學(xué)習(xí)交流群和接單群!

          小伙伴們,快快用實(shí)踐一下吧!如果在學(xué)習(xí)過(guò)程中,有遇到任何問(wèn)題,歡迎加我好友,我拉你進(jìn)Python學(xué)習(xí)交流群共同探討學(xué)習(xí)。

          ------------------- End -------------------

          往期精彩文章推薦:

          歡迎大家點(diǎn)贊,留言,轉(zhuǎn)發(fā),轉(zhuǎn)載,感謝大家的相伴與支持

          想加入Python學(xué)習(xí)群請(qǐng)?jiān)诤笈_(tái)回復(fù)【入群

          萬(wàn)水千山總是情,點(diǎn)個(gè)【在看】行不行

          /今日留言主題/

          隨便說(shuō)一兩句吧~~

          瀏覽 83
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  黄片黄片黄片黄片黄片黄片黄片 | 五月天亚洲综合小说网 | 日韩黄色电影在线 | 欧美AAA| 欧美国产高清 |