真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Pandas中怎么對merge進行操作

今天就跟大家聊聊有關(guān)Pandas中怎么對merge進行操作,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

成都創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司,專注成都網(wǎng)站設(shè)計、網(wǎng)站建設(shè)、網(wǎng)站營銷推廣,域名注冊,雅安服務(wù)器托管,網(wǎng)站托管、服務(wù)器租用有關(guān)企業(yè)網(wǎng)站制作方案、改版、費用等問題,請聯(lián)系成都創(chuàng)新互聯(lián)。

merge

首先我們來看dataframe當(dāng)中的merge操作,merge操作類似于數(shù)據(jù)庫當(dāng)中兩張表的join,可以通過一個或者多個key將多個dataframe鏈接起來。

我們首先來創(chuàng)建兩個dataframe數(shù)據(jù):

df1 = pd.DataFrame({'id': [1, 2, 3, 3, 5, 7, 6], 'age': range(7)})

df2 = pd.DataFrame({'id': [1, 2, 4, 4, 5, 6, 7], 'score': range(7)})
 
Pandas中怎么對merge進行操作  

我們可以看到這兩個dataframe當(dāng)中都有id這個字段,如果我們想要將它們根據(jù)id關(guān)聯(lián)起來,我們可以用pd.merge函數(shù)完成:

Pandas中怎么對merge進行操作  

這里雖然我們沒有指定根據(jù)哪一列完成關(guān)聯(lián),但是pandas會自動尋找兩個dataframe的名稱相同列來進行關(guān)聯(lián)。一般情況下我們不這么干,還是推薦大家指定列名。指定列名很簡單,我們只需要傳入on這個參數(shù)即可。

Pandas中怎么對merge進行操作  

如果需要根據(jù)多列關(guān)聯(lián),我們也可以傳入一個數(shù)組。但假如兩個dataframe當(dāng)中的列名不一致怎么辦,比如這兩個dataframe當(dāng)中的一列叫做id,一列叫做number,該怎么完成join呢?

df1 = pd.DataFrame({'id': [1, 2, 3, 3, 5, 7, 6], 'age': range(7)})

df2 = pd.DataFrame({'number': [1, 2, 4, 4, 5, 6, 7], 'score': range(7)})
 

這個時候就需要用left_on指定左表用來join的列名,用right_on指定右表用來join的列名。

Pandas中怎么對merge進行操作  

談到j(luò)oin,不得不提另外一個問題就是join的方式。我們都知道在數(shù)據(jù)庫的表join操作當(dāng)中我們通常的join方式有4種。分別是innner join,left join,right join和outer join。我們觀察一下上面的結(jié)果會發(fā)現(xiàn)關(guān)聯(lián)之后的數(shù)據(jù)條數(shù)變少了,這是因為默認(rèn)的方式是inner join,也就是兩張表當(dāng)中都存在的數(shù)據(jù)才會被保留。如果是left join,那邊左邊當(dāng)中所有的數(shù)據(jù)都會保留,關(guān)聯(lián)不上的列置為None,同理,如果是right join,則右表全部保留,outer join則會全部保留。

join的方式選擇通過how這個參數(shù)控制,比如如果我們想要左表保留,我們傳入how='left'即可。

Pandas中怎么對merge進行操作  

除此之外,merge操作還有一些其他的參數(shù),由于篇幅限制我們不一一介紹了,大家感興趣可以去查閱相關(guān)文檔。

 

數(shù)據(jù)合并

另外一個常用的操作叫做數(shù)據(jù)合并,為了和merge操作區(qū)分,我用了中文。雖然同樣是合并,但是它的邏輯和merge是不同的。對于merge來說,我們需要關(guān)聯(lián)的key,是通過數(shù)據(jù)關(guān)聯(lián)上之后再合并的。而合并操作是直接的合并,行對行合并或者是列對列合并,是忽視數(shù)據(jù)的合并。

這個合并操作我們之前在numpy的介紹當(dāng)中曾經(jīng)也提到過,我們這里簡單回顧一下。

首先我們先創(chuàng)建一個numpy的數(shù)組:

import numpy as np
arr = np.random.rand(3, 4)
 

之后呢,我們可以用concatenate函數(shù)把這個數(shù)組橫著拼或者是豎著拼,默認(rèn)是豎著拼:

Pandas中怎么對merge進行操作  

我們也可以通過axis這個參數(shù)讓它變成橫著拼:

Pandas中怎么對merge進行操作  

對于dataframe同樣也有這樣的操作,不過換了一個名字叫做concat。如果我們不指定的話會豎著拼接:

Pandas中怎么對merge進行操作  

豎著拼接的時候會按照列進行對齊,如果列名對不上就會填充NaN。

通過axis參數(shù)我們可以讓它橫向拼接:

Pandas中怎么對merge進行操作  

看完上述內(nèi)容,你們對Pandas中怎么對merge進行操作有進一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。


分享文章:Pandas中怎么對merge進行操作
轉(zhuǎn)載來于:http://weahome.cn/article/ggdjoe.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部