使用python實現excel的Vlookup功能
python 如何實現Excel 的Vlookup功能
1、Excel 中VLOOKUP具體步驟
Excel 中的VLOOKUP使用說明采用下面的小示例進行說明:
- 背景:目前有兩個基礎表,分別是 學號-姓名 關系表,學號-課程 關系表。
- 目的:最終生成 學號-姓名-課程 關系表。
- vlookup語法:VLOOKUP(查找值,數據表,列序數,[匹配條件])
- 注意:vlookup屬于要注意匹配的左右。比如用學號來匹配課程的話,查找值就是學號,數據表就是學生-課程表。列序數就是課程所在的第2列。匹配條件 一般是FALSE,即精確匹配。



需要注意的是:vlookup使用的是python中的left模式。
查找表沒有對應學號的,匹不出相應的值,在基礎表上就會顯示 #N/A;
查找表有對應學號的,且有重復值時,在基礎表上只會優(yōu)先匹配第一個值(這部分在python中,將全部都匹配上重復的。)
2、Python中使用pandas包中的pd.merge()來實現
利用pd.merge()將DataFrame 和 Series進行匹配。
pd.merge(left, right, how = ‘inner', on = None, left_on = None, right_on = None,
left_index = False, right_index = False, sort = True, suffixes = (‘_x','_y'),
copy = True, indicator = False, validate = None)
參數說明:
| 參數 | 說明 |
| left | 左表 |
| right | 右表 |
| how | 連接方式,inner、left、right、outer,默認為inner |
| on | 用于連接的列名稱 |
| left_on | 左表用于連接的列名 |
| right_on | 右表用于連接的列名 |
| left_index | 是否使用左表的行索引作為連接鍵,默認False |
| right_index | 是否使用右表的行索引作為連接鍵,默認False |
| sort | 默認為False,將合并的數據進行排序 |
| copy | 默認為True,總是將數據復制到數據結構中,設置為False可以提高性能 |
| suffixes | 存在相同列名時在列名后面添加的后綴,默認為(’_x’, ‘_y’) |
| indicator | 顯示合并數據中數據來自哪個表 |
注意事項:
- 當兩個表用于連接的列名相同時,只需用on 來連接 ;
- 當兩個表用于連接的列名不同時,則需要使用left_on和right_on分別連接。
- 如果是兩個DataFrame 進行匹配時,則匹配后會將DataFrame中所有的列都添加進去。
- vlookup中的匹配連接方式屬于how=left。
- 重復行會全部匹配。
下面是兩個表:


為方便大家理解,下面是python 中不同匹配方式的結果:
示例示例




上述語法也可以使用下面的方式:

到此這篇關于使用python實現excel的Vlookup功能的文章就介紹到這了,更多相關python實現excel的Vlookup內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
python工具模塊介紹之time?時間訪問和轉換的示例代碼
這篇文章主要介紹了python工具模塊介紹-time?時間訪問和轉換,本文通過示例代碼給大家介紹的非常詳細,對大家啊的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-04-04

