python實(shí)現(xiàn)excel和csv中的vlookup函數(shù)示例代碼
本篇博客會(huì)介紹如何使用python在excel和csv里實(shí)現(xiàn)vlookup函數(shù)的功能,首先需要簡(jiǎn)單了解一下python如何操作excel
1. python處理excel
1.1 刪除excel中指定行
在文件夾里創(chuàng)建了一個(gè)excel文件,可以看到里面放的是三國(guó)人物的數(shù)據(jù)

會(huì)發(fā)現(xiàn)在【蜀】里,多了一個(gè)【晉】,所以此時(shí)我們先實(shí)現(xiàn)刪掉這條數(shù)據(jù)
import pandas as pd import openpyxl import os shu = r'D:/Python_Project/data_analysis/csdn/pandas/pandas合并excel/源文件/蜀.xlsx' #刪除指定行 df_shu = pd.read_excel(shu) selected_rows = df_shu.loc[df_shu["國(guó)家"] == "晉"] print(selected_rows)
這時(shí)我們就已經(jīng)將需要?jiǎng)h除的數(shù)據(jù)找了出來(lái)

此時(shí)可以使用數(shù)據(jù)框的drop()方法來(lái)刪除選定的行
df_shu = df_shu.drop(selected_rows.index) print(df_shu)

現(xiàn)在只需要將結(jié)果存回excel就完成了這個(gè)需求
#保存至excel df_shu.to_excel(shu, index=False)
此時(shí)再打開(kāi)文件夾內(nèi)的excel就會(huì)發(fā)現(xiàn)已經(jīng)刪掉了【晉】的數(shù)據(jù)

1.2 獲取excel的最大行數(shù)
在不打開(kāi)一個(gè)excel的前提下,可以通過(guò)openpyxl來(lái)直接獲取這個(gè)文件的最大行數(shù),方便對(duì)這個(gè)文件大小有個(gè)初步的理解
import pandas as pd import openpyxl import os shu = r'D:/Python_Project/data_analysis/csdn/pandas/pandas合并excel/源文件/蜀.xlsx' wei = r'D:/Python_Project/data_analysis/csdn/pandas/pandas合并excel/源文件/魏.xlsx' wu = r'D:/Python_Project/data_analysis/csdn/pandas/pandas合并excel/源文件/吳.xlsx' #刪除指定行 df_shu = pd.read_excel(shu) df_wei = pd.read_excel(wei) df_wu = pd.read_excel(wu) #查看最大行數(shù) workbook = openpyxl.load_workbook(wei) worksheet = workbook['Sheet1'] max_row = worksheet.max_row print(max_row)
這樣就可以直接獲取最大行數(shù)為4

1.3 將excel表進(jìn)行上下拼接
在當(dāng)前的示例中,魏蜀吳三個(gè)勢(shì)力的數(shù)據(jù)是分開(kāi)存放的,現(xiàn)在想要匯總出整個(gè)三國(guó)的數(shù)據(jù),就可以先提取表頭,再將剩下的內(nèi)容合并在一起,這時(shí)可以通過(guò)concat函數(shù)進(jìn)行實(shí)現(xiàn)
import pandas as pd import openpyxl import os shu = r'D:/Python_Project/data_analysis/csdn/pandas/pandas合并excel/源文件/蜀.xlsx' wei = r'D:/Python_Project/data_analysis/csdn/pandas/pandas合并excel/源文件/魏.xlsx' wu = r'D:/Python_Project/data_analysis/csdn/pandas/pandas合并excel/源文件/吳.xlsx' #刪除指定行 df_shu = pd.read_excel(shu) df_wei = pd.read_excel(wei) df_wu = pd.read_excel(wu) #兩張表進(jìn)行上下拼接 df = pd.concat([df_shu, df_wei, df_wu]) # 將合并后的數(shù)據(jù)寫(xiě)入新的Excel文件 df.to_excel(r"D:/Python_Project/data_analysis/csdn/pandas/pandas合并excel/源文件/三國(guó).xlsx", index=False)
運(yùn)行之后就會(huì)發(fā)現(xiàn)在當(dāng)前文件夾里多出來(lái)了一個(gè)新文件

而里面的內(nèi)容也確實(shí)是幾個(gè)文件的內(nèi)容拼接

1.4 實(shí)現(xiàn)excel中的vlookup函數(shù)
平時(shí)在工作中,會(huì)需要將兩份excel進(jìn)行vlookup操作,如果數(shù)據(jù)量比較大,則程序會(huì)運(yùn)行的比較慢,這時(shí)候就可以用merge函數(shù)進(jìn)行實(shí)現(xiàn)
import pandas as pd import openpyxl import os #兩張表進(jìn)行vlookup sanguo = r'D:/Python_Project/data_analysis/csdn/pandas/pandas合并excel/源文件/三國(guó).xlsx' wuqi = r'D:/Python_Project/data_analysis/csdn/pandas/pandas合并excel/源文件/武器.xlsx' df_sanguo = pd.read_excel(sanguo) df_wuqi = pd.read_excel(wuqi) df=pd.merge(df_sanguo, df_wuqi, how= 'left',left_on = '人物', right_on = '名稱') print(df)
其中how參數(shù)是連接方式,這里使用的是左連接,left_on 和right_on 參數(shù)是兩張表關(guān)聯(lián)所使用的字段名稱,運(yùn)行程序后會(huì)直接看到關(guān)聯(lián)后的結(jié)果

2. python處理csv
經(jīng)過(guò)實(shí)測(cè),對(duì)csv文件進(jìn)行vlookup操作和對(duì)excel是一樣的,都可以直接使用merge函數(shù)
到此這篇關(guān)于python實(shí)現(xiàn)excel和csv中的vlookup函數(shù)的文章就介紹到這了,更多相關(guān)python vlookup函數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python tkinter控件treeview的數(shù)據(jù)列表顯示的實(shí)現(xiàn)示例
本文主要介紹了python tkinter控件treeview的數(shù)據(jù)列表顯示的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01
Python集中化管理平臺(tái)Ansible介紹與YAML簡(jiǎn)介
這篇文章主要介紹了Python集中化管理平臺(tái)Ansible介紹與YAML,簡(jiǎn)單說(shuō)明了集中化管理平臺(tái)Ansible的功能與YAML語(yǔ)言的基本語(yǔ)法與基本使用技巧,需要的朋友可以參考下2019-06-06
No module named 'plotly.graph_objects&ap
這篇文章主要為大家介紹了No module named 'plotly.graph_objects'報(bào)錯(cuò)解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-12-12
python通過(guò)paramiko復(fù)制遠(yuǎn)程文件及文件目錄到本地
這篇文章主要為大家詳細(xì)介紹了python通過(guò)paramiko復(fù)制遠(yuǎn)程文件及文件目錄到本地,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-04-04
Python實(shí)現(xiàn)常見(jiàn)數(shù)據(jù)格式轉(zhuǎn)換的方法詳解
這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)常見(jiàn)數(shù)據(jù)格式轉(zhuǎn)換的方法,主要是xml_to_csv和csv_to_tfrecord,感興趣的小伙伴可以了解一下2022-09-09
python不同版本的_new_不同點(diǎn)總結(jié)
在本篇內(nèi)容里小編給大家整理了一篇關(guān)于python不同版本的_new_不同點(diǎn)總結(jié)內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。2020-12-12
python實(shí)現(xiàn)數(shù)組平移K位問(wèn)題
這篇文章主要介紹了python實(shí)現(xiàn)數(shù)組平移K位問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02

