国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Python Merge函數(shù)原理及用法解析

瀏覽:109日期:2022-07-11 08:48:53

Merge函數(shù)的用法

簡(jiǎn)單來(lái)說(shuō)Merge函數(shù)相當(dāng)于Excel中的vlookup函數(shù)。當(dāng)我們對(duì)2個(gè)表進(jìn)行數(shù)據(jù)合并的時(shí)候需要通過(guò)指定兩個(gè)表中相同的列作為key,然后通過(guò)key匹配到其中要合并在一起的values值。

然后對(duì)于merge函數(shù)在Pandas中分為1vs1, 多(m)vs1,以及多(m)vs多(m)這三種場(chǎng)景。但是平時(shí)用的最多的往往是多vs1的這種場(chǎng)景。也就是說(shuō)2個(gè)表中其中一個(gè)表作為key的值會(huì)出現(xiàn)重復(fù),而另外一個(gè)表作為key的值則是唯一。

這種場(chǎng)景也很好理解。例如:我們?cè)谏a(chǎn)環(huán)境中對(duì)服務(wù)器進(jìn)行管理,一臺(tái)服務(wù)器上可能裝了各種各樣的軟件。那么如果是Excel表格來(lái)管理的話(huà)一個(gè)軟件就占用一行信息。而服務(wù)器名是相同的。所以一個(gè)相同的服務(wù)器名就會(huì)出現(xiàn)多個(gè)。

這臺(tái)服務(wù)器上安裝了多少個(gè)軟件,服務(wù)器名就會(huì)重復(fù)幾次,也就是最終有幾行。那么另外一個(gè)表要想讀取這臺(tái)服務(wù)器上安裝的所有軟件,那么服務(wù)器名就要作為key,各個(gè)軟件的信息則是value值。最終被讀取寫(xiě)入的那張表的key只能唯一。

我們看下面這個(gè)案例,是真實(shí)多v1的案例。為了數(shù)據(jù)安全我只能把截圖分享給大家,并把服務(wù)器名遮掩希望大家諒解。

數(shù)據(jù)表1:作為查詢(xún)的總表,其中服務(wù)器名這列就是B列中的信息會(huì)出現(xiàn)重復(fù)

Python Merge函數(shù)原理及用法解析

數(shù)據(jù)表2:下表為按照表1的key就是hostname來(lái)匹配,匹配到后按照表2的列名來(lái)讀取信息寫(xiě)入到表2.這里同上因?yàn)榉?wù)器名敏感,所以也用馬賽克擋住了,忘諒解。

Python Merge函數(shù)原理及用法解析

代碼演示:

1. 讀取表1,表2中的內(nèi)容,作為DataFrame賦值給變量

#%%import pandas as pd#讀取表1df01 = pd.read_excel('./datas/new_all_datas.xlsx', header=5)df01.head()#%%#讀取表2df02 = pd.read_excel('./datas/new_software_InputSheet.xlsx')df02#%%

2. 通過(guò)merge函數(shù)合并兩個(gè)DataFrame。on代表指明拿什么作為key來(lái)進(jìn)行匹配。how這里分為left,right,inner,outer等方式。這里left代表按照表1為主表進(jìn)行合并。

#%%#ホスト名作為key來(lái)匹配兩個(gè)表,相當(dāng)于vlookup函數(shù)#how=left代表以left左表為主,這里則代表表二為左表df03 = pd.merge(df02,df01,on='ホスト名',how='left')df03

結(jié)果:合并結(jié)果如下。但是因?yàn)楸?,表2中出現(xiàn)重復(fù)元素的列名,因此合并后Pandas會(huì)按照后綴,把相同列名按照_x,_y的方式生成多列。

Python Merge函數(shù)原理及用法解析

3. 去除沒(méi)用的列并按照條件查詢(xún)想要的數(shù)據(jù). 下列需求是按照服務(wù)器名,找出對(duì)應(yīng)的'ソフトウェア名'也就是software名為T(mén)rend Micro的軟件以及'ソフトウェア?造元'software制造商為Symantec的所有行。

#%%#因?yàn)楸碇杏邢嗤牧忻虼俗詣?dòng)后綴被加上了_y#下面代表篩選查詢(xún)范圍,以及指定查詢(xún)值df03 = df03.loc[:,['ホスト名','行番號(hào)','ソフトウェア區(qū)分_y','ソフトウェア名_y','ソフトウェアバ?ジョン_y','ソフトウェア?造元_y']]df04 = df03[(df03['ソフトウェア名_y']=='Trend Micro') | (df03['ソフトウェア?造元_y']=='Symantec')]#重新把列名設(shè)定換一下然后輸出df04.columns = ['ホスト名','行番號(hào)','ソフトウェア區(qū)分','ソフトウェア名','ソフトウェアバ?ジョン','ソフトウェア?造元']df04

結(jié)果:

Python Merge函數(shù)原理及用法解析

4. 將數(shù)據(jù)導(dǎo)出到Excel文件

#%%with pd.ExcelWriter('./datas/output_mergedatas.xlsx') as writer: df04.to_excel(writer,index=False) print('Done!!')

結(jié)果:當(dāng)然也可以直接導(dǎo)入到數(shù)據(jù)表2中去。我這里為了不破壞原表,因此作為新的Excel表導(dǎo)出了。

Python Merge函數(shù)原理及用法解析

大家在日常業(yè)務(wù)中,如果遇到類(lèi)似場(chǎng)景可以嘗試通過(guò)merge函數(shù)來(lái)合并您的數(shù)據(jù)。還可以結(jié)合loc切片以及寫(xiě)下來(lái)要發(fā)表的pivot,pivot_table透視表來(lái)更加豐富的對(duì)數(shù)據(jù)進(jìn)行清洗。

總體而言用慣了Pandas后會(huì)感覺(jué)相比Excel中的函數(shù)及宏。Pandas會(huì)更加的靈活也更加的強(qiáng)大。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 免费萌白酱国产一区二区三区 | 久久久久国产一级毛片高清片 | 欧美三级黄 | 亚洲欧美一区二区视频 | avtt天堂网 手机资源 | 日韩一区二区三区视频在线观看 | 国产精选一区二区 | 高清国产一级精品毛片基地 | 久久免费视频网 | 美国一级毛片片免费 | 久久久99视频 | 久久色国产 | 亚洲国产精品成 | 国产精品特黄一级国产大片 | 免费视频观看在线www日本 | 成人免费aaaaa毛片 | 国产在线观看成人 | 成人中文字幕在线高清 | 中文字幕精品一区二区精品 | 精品亚洲视频在线 | 国产成人综合亚洲一区 | 日韩在线视频中文字幕 | 久久91亚洲精品久久91综合 | 亚洲国产日韩欧美 | 一本久综合久久爱 | 欧美精品国产制服第一页 | 久草视频中文 | 国产精品亚洲二线在线播放 | www.亚洲在线| 亚洲一区在线免费观看 | 亚洲精品一区二区手机在线 | 精品中文字幕不卡在线视频 | 最新最好看免费毛片基地 | 99久久99热久久精品免费看 | 久久精品在现线观看免费15 | 久久精品国产精品亚洲20 | 欧美有码在线观看 | 欧美成人性色xxxxx视频大 | 亚洲欧美视频一级 | 国产一区二区精品 | 欧美一级片免费看 |