手把手教你用Python實(shí)現(xiàn)Excel中的Vlookup功能
回復(fù)“書籍”即可獲贈(zèng)Python從入門到進(jìn)階共10本電子書
一、前言
大家好,我是崔艷飛。工作中經(jīng)常會(huì)遇到,需要把兩張Excel或Csv數(shù)據(jù)表通過(guò)關(guān)鍵字段進(jìn)行關(guān)聯(lián),匹配對(duì)應(yīng)數(shù)據(jù)的情況,Excel雖有Vlookup函數(shù)可以處理,但數(shù)據(jù)量大時(shí)容易計(jì)算機(jī)無(wú)響應(yīng),可能出現(xiàn)數(shù)據(jù)丟失,處理速度較慢是軟肋,而Python只需幾行代碼就能輕松實(shí)現(xiàn),且處理速度快,詳細(xì)如下。
二、項(xiàng)目目標(biāo)
用Python實(shí)現(xiàn)兩張Excel或Csv表數(shù)據(jù)關(guān)聯(lián)處理。
三、項(xiàng)目準(zhǔn)備
軟件:PyCharm
需要的庫(kù):pandas
四、項(xiàng)目分析
1)如何讀取要處理的Csv文件?
利用pandas庫(kù)讀取Csv文件。
2)如何讀取要處理的Excel文件?
利用pandas庫(kù)讀取Excel文件。
3)如何通過(guò)關(guān)鍵字段關(guān)聯(lián)匹配兩張表中的數(shù)據(jù)?
利用merge()函數(shù),通過(guò)關(guān)鍵字段,關(guān)聯(lián)組合兩張表中的數(shù)據(jù)。
4)如何保存結(jié)果?
利用to_csvl保存關(guān)聯(lián)組合后的數(shù)據(jù)。
五、項(xiàng)目實(shí)現(xiàn)
1、第一步導(dǎo)入需要的庫(kù)
import pandas as pd
2、第二步讀取要處理的Csv文件
# 讀入表1df1 = pd.read_csv('D:/a/1.csv', encoding='gbk')
3、第三步讀取要處理的Excel文件
# 讀入表2df2 = pd.read_excel('D:/a/2.xlsx', encoding='utf-8')
4、第四步關(guān)聯(lián)匹配數(shù)據(jù),并保存結(jié)果文件
# 關(guān)聯(lián)數(shù)據(jù)data = df1.merge(df2, on='姓名',left_index=False, right_index=False, sort=False)# 保存數(shù)據(jù)data.to_csv('D:/a/result.csv', encoding='gbk',index=False)
六、效果展示
1、處理前表1數(shù)據(jù):

2、處理前表2數(shù)據(jù):

3、處理后的關(guān)聯(lián)匹配數(shù)據(jù):

七、總結(jié)
本文介紹了如何利用Python進(jìn)行Excel和Csv間的數(shù)據(jù)關(guān)聯(lián)處理,替代了Excel的Vlookup函數(shù),由于不用顯示源文件,節(jié)省了系統(tǒng)資源,處理效率更高,數(shù)據(jù)量越大,優(yōu)勢(shì)越明顯,Python還有很多類似的函數(shù),數(shù)據(jù)處理,唯快不破,有興趣的同學(xué)可以研究下,有問(wèn)題隨時(shí)留言,一起討論學(xué)習(xí)。
最后需要本文項(xiàng)目代碼的小伙伴,請(qǐng)?jiān)诠娞?hào)后臺(tái)回復(fù)“Vlookup”關(guān)鍵字進(jìn)行獲取,如果在運(yùn)行過(guò)程中有遇到任何問(wèn)題,請(qǐng)隨時(shí)留言或者加小編好友,小編看到會(huì)幫助大家解決bug噢!
------------------- End -------------------
往期精彩文章推薦:
手把手教你利用Python輕松拆分Excel為多個(gè)CSV文件
Python項(xiàng)目實(shí)戰(zhàn)——手把手教你使用Django框架實(shí)現(xiàn)支付寶付款
手把手教你用Python爬取百度搜索結(jié)果并保存
歡迎大家點(diǎn)贊,留言,轉(zhuǎn)發(fā),轉(zhuǎn)載,感謝大家的相伴與支持
想加入Python學(xué)習(xí)群請(qǐng)?jiān)诤笈_(tái)回復(fù)【入群】
萬(wàn)水千山總是情,點(diǎn)個(gè)【在看】行不行
/今日留言主題/
隨便說(shuō)一兩句吧~
