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

會發(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["國家"] == "晉"] print(selected_rows)
這時(shí)我們就已經(jīng)將需要刪除的數(shù)據(jù)找了出來

此時(shí)可以使用數(shù)據(jù)框的drop()方法來刪除選定的行
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í)再打開文件夾內(nèi)的excel就會發(fā)現(xiàn)已經(jīng)刪掉了【晉】的數(shù)據(jù)

1.2 獲取excel的最大行數(shù)
在不打開一個(gè)excel的前提下,可以通過openpyxl來直接獲取這個(gè)文件的最大行數(shù),方便對這個(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ù)據(jù)是分開存放的,現(xiàn)在想要匯總出整個(gè)三國的數(shù)據(jù),就可以先提取表頭,再將剩下的內(nèi)容合并在一起,這時(shí)可以通過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ù)寫入新的Excel文件 df.to_excel(r"D:/Python_Project/data_analysis/csdn/pandas/pandas合并excel/源文件/三國.xlsx", index=False)
運(yùn)行之后就會發(fā)現(xiàn)在當(dāng)前文件夾里多出來了一個(gè)新文件

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

1.4 實(shí)現(xiàn)excel中的vlookup函數(shù)
平時(shí)在工作中,會需要將兩份excel進(jìn)行vlookup操作,如果數(shù)據(jù)量比較大,則程序會運(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/源文件/三國.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)行程序后會直接看到關(guān)聯(lián)后的結(jié)果

2. python處理csv
經(jīng)過實(shí)測,對csv文件進(jìn)行vlookup操作和對excel是一樣的,都可以直接使用merge函數(shù)
到此這篇關(guān)于python實(shí)現(xiàn)excel和csv中的vlookup函數(shù)的文章就介紹到這了,更多相關(guān)python vlookup函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python tkinter控件treeview的數(shù)據(jù)列表顯示的實(shí)現(xiàn)示例
本文主要介紹了python tkinter控件treeview的數(shù)據(jù)列表顯示的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01
No module named 'plotly.graph_objects&ap
這篇文章主要為大家介紹了No module named 'plotly.graph_objects'報(bào)錯(cuò)解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-12-12
python通過paramiko復(fù)制遠(yuǎn)程文件及文件目錄到本地
這篇文章主要為大家詳細(xì)介紹了python通過paramiko復(fù)制遠(yuǎn)程文件及文件目錄到本地,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-04-04
Python實(shí)現(xiàn)常見數(shù)據(jù)格式轉(zhuǎn)換的方法詳解
這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xià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位問題
這篇文章主要介紹了python實(shí)現(xiàn)數(shù)組平移K位問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02

