Python實現Excel中vlookup函數功能

2021-03-02 Stata and Python數據分析

本文作者:王碧琪

文字編輯:方   言

技術總編:張馨月

爬蟲俱樂部將於2020年8月25日至28日在線上舉行Stata數據分析法律與制度專題訓練營,主要是為了讓學員掌握Stata軟體進階操作,涉及內容包括基本字符串函數及其應用、正則表達式、法律與制度數據網絡爬蟲技巧、判案文書的文本分析等技術。詳情請參考8月Stata數據分析法律與制度專場來啦!》    另外,爬蟲俱樂部於2020年7月在線上舉辦的Stata與Python編程技術訓練營已圓滿結束。應廣大學員需求,我們的課程現已在騰訊課堂雙雙上線,且繼續提供答疑服務。現在關注公眾號並在朋友圈轉發推文《來騰訊課堂學Stata和Python啦!》,即可獲得600元課程優惠券,集贊50個再領200元課程優惠劵!(截圖發至本公眾號後臺領取)原價2400元的課程,現在只要1600元

使用Excel進行數據分析時常常用到vlookup函數。在《Stata實現Excel中vlookup函數功能》中介紹了vlookup函數的基本用法,今天,我們使用Python中的pandas庫來實現該函數的相應功能。

一、簡介(一)數據簡介

本文使用的原始數據文件來源於《明星閃閃亮:各校高被引論文》中公布的全國高校經管類核心期刊發文排行榜(前200),文件名為「第一單位排名匯總.xlsx」。

(二)結果文件樣式

現在有一部分大學名單,想要提取該大學對應的「發文量」和「發文排名」數據。其中,大學名單為亂序,且可能存在原始文件中找不到的情況(北京第二外國語學院無對應數據)。

本文的處理目的是將上述表格填充完整。

(三)函數簡介

實現vlookup函數功能需要用到pandas中的merge()函數。在《Python之數據合併與連接》和《DataFrame數組常用方法(二)》中都有介紹merge的使用方法。常用格式如下:

pd.merge(df1,df2,left_on='col1',right_on='col2',how='inner/left/right/outer')pd.merge(df1,df2,on=[col1,col2,...],how='inner/left/right/outer')

merge函數的參數見下表:

參數說明left參與合併的左鍵DataFrameright參與合併的右鍵DataFramehow四個取值:inner,outer,left,right。兩列的交集(inner),保留第一個數據的所有值(left),保留第二個數據的所有值(right),兩列的併集(outer)on用於連接的列名。必須存在於左右兩個 Data Frame對象中。如果未指定,且其他連接鍵也未指定,則以left和right列名的交集作為連接鍵left_on左側 DataFrame中用作連接鍵的列right_on右側 DataFrame中用作連接鍵的列left_index將左側的行索引用作其連接鍵right_index類似於 - left indexsort根據連接鍵對合併後的數據進行排序,默認為Truesuffixes字符串值元組,用於追加到重疊列名的末尾,默認為(x,y)。例如,如果左右兩個Dataframe對象都有「data」,則結果中就會出現data_x和data_ycopy設置為False,可以在某些特殊情況下避免將數據複製到結果數據結構中,默認值為複製二、程序處理(一)準備工作
import ospath=r'F:\vlookup函數'if not os.path.exists(path):   os.makedirs(path)os.chdir(path) import pandas as pdinfile="第一單位排名匯總.xlsx" outfile="out.xlsx" 

(二)讀入infile
df1 = pd.read_excel(infile,encoding = 'utf-8')print(df1.head())

結果中顯示了df1的前幾行數據值。

(三)創建outfile
data={'大學':['北京第二外國語學院','中南財經政法大學','深圳大學','上海大學','華中科技大學']}df2 = pd.DataFrame(data) print(df2)

結果中顯示df2成功寫入了所需的大學名單。

(四)合併
dfneed=df1[['大學', '發文量','發文排名']] #df1中用到的列oncol='大學' #按照這一列進行合併df2=df2.merge(dfneed, how='left', on=oncol) #合併df2和df1中的dfneed#df2=pd.merge(df2,dfneed,how='left',on=oncol) #與上一行功能相同print(df2)

這裡我們設置保留左側的DataFrame的全部數據,可以將「北京第二外國語學院」這條數據保留下來(儘管它是空的,顯示為NaN)。

(五)導出
df2.to_excel(outfile,index=False) 

打開Excel文件可以看到:

此時,已成功實現vlookup函數功能,得到目標文件。

三、結語

pandas是Python中處理Excel常用的庫,今天我們使用其中的merge函數實現了Excel中的vlookup函數功能,除此之外pandas還有其他許多非常強大的功能,如果需要對大量表格數據進行處理,可以嘗試Python中的pandas庫。

對我們的推文累計打賞超過1000元,我們即可給您開具發票,發票類別為「諮詢費」。用心做事,不負您的支持!

明星閃閃亮:各校高被引論文

split和nsplit助你輕鬆拆分

集成學習介紹之三——Stacking算法

Mylabels命令介紹  

用WordStat看中國日報新聞  

數據集的劃分——交叉驗證法

微信公眾號「Stata and Python數據分析」分享實用的stata、python等軟體的數據處理知識,歡迎轉載、打賞。我們是由李春濤教授領導下的研究生及本科生組成的大數據處理和分析團隊。

此外,歡迎大家踴躍投稿,介紹一些關於stata和python的數據處理和分析技巧。投稿郵箱:statatraining@163.com投稿要求:
1)必須原創,禁止抄襲;
2)必須準確,詳細,有例子,有截圖;
注意事項:
1)所有投稿都會經過本公眾號運營團隊成員的審核,審核通過才可錄用,一經錄用,會在該推文裡為作者署名,並有賞金分成。
2)郵件請註明投稿,郵件名稱為「投稿+推文名稱」。
3)應廣大讀者要求,現開通有償問答服務,如果大家遇到有關數據處理、分析等問題,可以在公眾號中提出,只需支付少量賞金,我們會在後期的推文裡給予解答。

相關焦點

  • 如何用python實現excel中的vlookup功能?
    因為刀哥是python初學者,對於需要用到的知識點,如果以前學過的要再複習一下,年紀大了嘛記性比較差,沒學過的新知識點要先學習一下,邊學邊用,所以做的速度比較慢,但是好在,哪怕慢,只要每天進步一點點,都是好的。今天這篇分享,就是刀哥在做的過程中,遇到的其中一個知識點,即用python來實現excel中的vlookup函數功能。
  • Stata實現Excel中vlookup函數功能
    在數據分析時,使用過Excel的小夥伴必備的能力之一就是會用vlookup函數。小編在嘗試了之後,覺得Stata也能做同樣的事情,所以今天跟隨小編一起,用Stata實現Excel中vlookup函數功能吧。
  • excel中vlookup函數的用法筆記
    本篇將介紹excel中vlookup函數的用法,有興趣的朋友可以了解一下!一、前言excel是我們工作中很常用的表格製作工具,它不僅僅只是用來製作表格,還能對數據進行處理(如:排序、運算等)。excel中還給我們提供了很多實用的函數,今天小編要介紹的就是其中一個,也是比較常用的一個函數,即vlookup函數。vlookup函數的功能其實就是用來找東西的,只要是找excel表格中的某個數據,大家都會想到使用vlookup函數。vlookup函數怎麼用呢?相信是很多人關心的問題,接下來就跟著小編一起來學習excel vlookup函數的用法吧!
  • EXCEL表格詳解vlookup第三彈-index()函數實現vlookup功能
    在vlookup函數的使用過程中,有時需要查找的數據在匹配的列的前面,而這時我們通用的做法是將查找列拷貝到匹配列的後面,這樣就可以使用vlookup了。但在實際的使用過程中會修改源數據表,難免回對後續其他的一些操作帶來不便。
  • excel中vlookup函數的使用方法
    vlookup函數是excel表格中高級的用法,通過vlookup函數我們可以調用符合條件的數據,在大量調用時可以節省我們查找複製excel數據的時間,今天我就教下大家vlookup函數的使用方法吧。vlookup函數的使用方法如圖我準備了一張員工入職時間表,員工有非常多,如果我要在這裡面一一找出張三李四王五等人的入職時間的話,可以通過查找黏貼的方式,但是這樣的效率就很低了,特別是要找的人多的話,那使用vlookup函數是最簡單的方法。
  • 值得學習的excel操作小技巧,利用vlookup函數實現一對多查詢
    我們在實際工作中,我們經常使用excel表格對數據進行處理和分析,我們都清楚excel具有強大的excel函數和數據處理工具,我們可以憑藉這些工具盒函數對數據進行快速處理,這次我們還是要講解一下有關vlookup函數的相關內容,我們知道vlookup函數是一個查找函數,我們這次講解的是利用
  • 如何在excel中使用vlookup函數?
    其實無論是計算機考試中還是我們平時的工作中,都是需要用到查詢函數,因為不僅是考試考點,學會使用它會使我們的工作簡單許多。 vlookup函數通常用於在excel工作簿中搜索某個單元格區域的第一列,然後返回該區域相同行上任何單元格中的值。
  • 還在用Excel的vlookup?Python幾行代碼就能搞定!
    VLOOKUP函數是Excel中的一個縱向查找函數,功能是按列查找,最終返回該列所需查詢序列所對應的值。 然而這樣的功能在Excel有點複雜,很多人往往記不住怎麼做,本文使用Python的Pandas幾行代碼就能搞定,還可以按指定的列進行輸出。
  • 【Excel使用技巧】vlookup函數的使用方法
    :$D$13,MATCH(H$2,$A$2:$D$2,0),FALSE)在這裡我們在vlookup中嵌套一個match函數來獲取表頭在數據表中的列號五、 一對多查詢0和手機號碼的數組,其他的均為錯誤值七、 區間查找公式:=VLOOKUP(B3,$J$2:$K$6,2,TRUE)這裡我們使用vlookup函數的近似匹配來代替
  • excel中vlookup函數的常見的基本使用方法介紹
    excel函數VLOOKUP的功能就是查找。 主要演示利用vlookup函數在另外一張表中只輸入學生的名次就顯示學生的姓名和總分。 vlookup函數主要是一個縱向的查找函數,最終把想要的列的值給提取到顯示出來。
  • Excel查找引用:比vlookup函數還好用的是hlookup函數
    在之前發布了一個動態排班表的文章,根據日期和班組來查詢班次,小編原來使用了一個很長很長的if+vlookup函數組合查找到的!函數查找範圍是使用了定義名稱!沒想到只要一個hlookup函數就可以解決這個函數和vlookup函數的查找區別是橫向查找,查找值都必須在查找區域的首行/首列所以在F2中輸入公式=HLOOKUP(B2,四班三倒!
  • 函數vlookup與通配符功能的完美結合,助你解決習慣造成的錯誤
    excel在前兩篇文章中,第一篇文章向大家詳細介紹了函數vlookup的語法形式和基本運用方法,第二篇文章在函數今天要講述的內容依然是在函數vlookup的基礎用法上進行的拓展。我們在運用excel工作表來解決日常中的問題時,往往所用的函數沒有任何問題,但是由於習慣原因,會導致我們在運用excel工作表中的函數時的過程並不順利,今天的主講內容就是我們在運用excel工作表時的習慣「錯誤」,以及解決錯誤的方法。
  • Excel中Vlookup函數的使用方法(入門級)
    在VLOOKUP入門中我們提示VLOOKUP的第4個參數,如果為0或FALSE是精確查找,如果是1或TRUE或省略則為模糊查找,那麼實現區間查找正是第4個參數的模糊查找應用。    首先我們需要了解一下VLOOKUP函數模糊查找的兩個重要規則:    1、引用的數字區域一定要從小到大排序。雜亂的數字是無法準確查找到的。
  • excel數據的模糊查找,vlookup函數與通配符的搭配使用
    今天我們要分享一個比較實用的excel數據的查找技巧,就是通過簡稱來查找全稱,這樣的查找方式叫做模糊查找,我們之前學習過了幾個查找函數,比較常見是vlookup函數和lookup函數以及choose函數等,我們知道這些查找函數各自有各自的優點,今天我們要講解的是vlookup函數與通配符的搭配使用
  • excel查找函數-vlookup
    在我們日常表格數據處理中,經常遇到數據查詢等問題,比如根據產品編號查詢單價或根據產品名稱反方向查找產品編碼等。大家都會想到 VLOOKUP、LOOKUP等熟悉的查詢函數,但是對於剛入接觸或學習excel的新手不知道怎麼操作,今天分享關於查詢問題通過下面例子進行演示,如下:關鍵詞:vlookup、IFERROR、反方向查找函數使用格式=VLOOKUP
  • Excel的VLOOKUP函數實現數據批量提取
    問題背景:在工作或生活中,經常要用到把兩個表格的數據合併在一起,例如兩個表格是相同的商品在不同時間段的價格或銷售數據,需要根據商品名稱把兩個表的數據整合在一起以便做更深度的數據統計和分析。我們知道可以用vlookup函數查找和提取,通過vlookup函數根據名單來查找和引用數據,實現多表整合。
  • Excel Vlookup 函數還有這個功能,你知道嗎?
    Excel Vlookup 函數還有這個功能,你知道嗎?相信看過上一篇文章的朋友都有練習過用Excel If 函數對成績進行分類,今天給大家分享如何利用Excel Vlookup函數實現成績分類。一、Vlookup函數有兩種匹配方式:第一種是 精確查找,就是大家經常使用它的功能,第4個參數要寫「0」;第二種是 模糊查找,第4個參數要寫「1」或者省略;二、下面我們就來看看Vlookup
  • excel中使用vlookup函數查找老出錯?試試index—match函數吧
    在excel中,運用查找函數是excel中進行數據統計分析最常用的操作之一,說起查找函數,很多人首先會想到vlookup函數,其實excel中的查找函數有很多種,比如lookup、index-match等,尤其是index—match函數的使用範圍比vlookup函數更加廣泛,在反向查找、橫向查找等方面能夠克服vloolup函數的不便,提供更加容易理解的查找思路
  • Excel跨表查詢:vlookup+indirect函數組合,你都不知道有多強大
    江湖傳聞在excel查找界頗有名氣的vlookup函數即將退休,微軟官方也公布將迎來的是xlookup函數,據說功能也是強大的一批!目測感覺有些用法就是vlookup函數和lookup函數的結合體啊,但在目前形勢來看普及該函數可能還需要一段時間,因為還需要考慮各個excel版本版的兼容性!
  • EXCEL公式-VLOOKUP應用
    excel的功能十分強大,vlookup函數是最基礎的函數之一,其作用非常強大可以幫助我們在眾多雜亂的數據中找到我們想要的答案。那這個函數該如何使用,下面給大家介紹一下excel中vlookup函數的使用方法。