<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也可以實(shí)現(xiàn)Excel中的“Vlookup”函數(shù)?

          共 2420字,需瀏覽 5分鐘

           ·

          2022-08-09 16:11

          VLOOKUP函數(shù)大家應(yīng)該都很熟悉吧,它可以幫我們根據(jù)指定的條件快速查找匹配出相應(yīng)的結(jié)果,通常被用于核對(duì)、匹配多個(gè)表格之間的數(shù)據(jù)。與數(shù)據(jù)透視表,并稱為數(shù)據(jù)er最常用的兩大Excel功能。
          07599adb2978adc1dca2558c17f4cf8e.webp

          那我們今天就聊聊,如何Python寫Excel中的“Vlookup”函數(shù)?

          Excel

          如圖所示,在“測試工資數(shù)據(jù).xlsx”表格文件中有兩個(gè)sheet,其中sheet1是我們的數(shù)據(jù)源區(qū)域,而sheet2存儲(chǔ)的是待查找的員工姓名和工資。

          652083b02b91763de92faaa9822a986c.webp

          在sheet2中,一列是員工姓名,一列是他們的對(duì)應(yīng)工資。

          ca8d459710c6a8d7e5a5fa57ceae8be5.webp

          vlookup函數(shù)就是在表格或數(shù)值數(shù)組的首列查找指定的數(shù)值,并由此返回表格或數(shù)組當(dāng)前行中指定列處的數(shù)值。語法格式如下所示:

          VLOOKUP?(lookup_value,?table_array,?col_index_num,?[range_lookup])

          對(duì)應(yīng)在本次案例中的使用,如下圖所示。

          6f3716859eaf25fb3da23e0abfe712f9.webp

          一般是匹配條件容易記混,如果為FALSE或0,則返回精確匹配,如果找不到,則返回錯(cuò)誤值 #N/A。如果 range_lookup 為TRUE或1,函數(shù) VLOOKUP 將查找近似匹配值。

          openpyxl

          在Python中利用openpyxl庫,就可以完成公式的填充。因此在使用openpyxl之前,需要安裝好這個(gè)庫。

          pip?install?openpyxl

          在openpyxl中,讀取已有的Excel文件,使用到的是load_workbook類,因此需要提前導(dǎo)入這個(gè)類。接著,實(shí)例化load_workbook("測試工資數(shù)據(jù).xlsx")對(duì)象,得到一個(gè)工作簿對(duì)象。

          然后,使用workbook["Sheet2"]激活該工作簿中的Sheet2表,表示我們要針對(duì)這個(gè)表進(jìn)行操作。完成上述操作后,下面就可以進(jìn)行vlookup公式的填寫了。[1]

          from?openpyxl?import?load_workbook?

          workbook?=?load_workbook("測試工資數(shù)據(jù).xlsx")
          sheet?=?workbook["Sheet2"]

          sheet["B1"]?=?"基本工資(Python)"
          for?i?in?range(2,?sheet.max_row+1):?
          ????sheet[f"B{i}"]?=?f'=VLOOKUP(A{i},Sheet1!A:B,2,FALSE)'
          workbook.save(filename?=?"vlookup.xlsx")

          首先,我們利用sheet["B1"] = "基本工資(Python)"修改B1單元格位置的表頭。然后通過for循環(huán)語句,循環(huán)第2行到最后一行,針對(duì)每一個(gè)B列單元格,我們都寫入上述vlookup公式。最后記得保存一下即可。

          d534c7e4edbc08334f911649848fbc28.webp

          不過需要注意,Python操作Excel的優(yōu)勢在于處理大數(shù)據(jù)、或者重復(fù)性工作。在本次案例中,使用openpyxl庫向Excel中寫入Vlookup函數(shù)多少有點(diǎn)大材小用了。

          經(jīng)過openpyxl一番操作,如同莊周帶凈化。

          Pandas

          在這數(shù)據(jù)爆炸的時(shí)代,我們無時(shí)無刻不在和數(shù)據(jù)打交道。面對(duì)雜亂無章的數(shù)據(jù)Pandas 模塊應(yīng)運(yùn)而生了,它提供了數(shù)據(jù)導(dǎo)入、數(shù)據(jù)清洗、數(shù)據(jù)處理、數(shù)據(jù)導(dǎo)出等一套流程方法,可以很方便地幫助我們自動(dòng)整理數(shù)據(jù)[2]。

          那么Excel中的這種常用函數(shù),Pandas模塊自然也是可以輕松搞定了。

          12e67e96da5daa4e28537558433c09f3.webp▲《快學(xué)Python:自動(dòng)化辦公輕松實(shí)戰(zhàn)》

          在 Pandas 模塊中,調(diào)用merge()方法,可以幫助我們實(shí)現(xiàn)數(shù)據(jù)連接。

          在交互式環(huán)境中輸入如下命令:

          import?pandas?as?pd
          path?=?"測試工資數(shù)據(jù).xlsx"
          df_1?=?pd.read_excel(path,?sheet_name?=?'Sheet1')
          df_2?=?pd.read_excel(path,?sheet_name?=?'Sheet2')

          pd.merge(df_2["姓名"],?df_1[["姓名",?"基本工資"]],?how="left",?on="姓名")

          輸出結(jié)果:

          1e41bfd36a9a789c58c92d284fcace4c.webp

          這樣我們就用Python(openpyxl + Pandas)實(shí)現(xiàn)了Excel中的“Vlookup”函數(shù)。


          往期推薦

          終于來了, ?彭濤Python 爬蟲訓(xùn)練營 ! 本周最低價(jià),這次千萬別錯(cuò)過了!

          Python 文本終端 GUI 框架,太酷了!

          微軟繼續(xù)拆分VS Code Python擴(kuò)展,再推三款獨(dú)立擴(kuò)展

          當(dāng)編程納入到高考。。。

          對(duì)比3款Pandas可視化GUI界面工具,再見吧,Excel!

          我們開發(fā)了一門爬蟲課,從0到1帶大家學(xué)習(xí) Python 爬蟲,既可以做副業(yè)接單,也可以做爬蟲工程師,歡迎掃碼了解。

          具體看:終于來了, ?彭濤Python 爬蟲訓(xùn)練營 !


          長按掃碼,可以試聽,想了解爬蟲更多細(xì)節(jié)可以添加「257735


          瀏覽 99
          點(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>
                  中国熟妇XXX.1 | 99中文字幕 | 蜜桃成人无码AV在线观看一电影 | 乱伦大香蕉~ | 国产乱伦小视频 |