Pandas 連線合併函式merge

2021-08-29 04:10:51 字數 2214 閱讀 3768

一、merge函式用途

pandas中的merge()函式類似於sql中join的用法,可以將不同資料集依照某些字段(屬性)進行合併操作,得到乙個新的資料集。

二、merge()函式的具體引數

引數

說明how

預設為inner,可設為inner/outer/left/right

on根據某個字段進行連線,必須存在於兩個dateframe中(若未同時存在,則需要分別使用left_on和right_on來設定)

left_on

左連線,以dataframe1中用作連線鍵的列

right_on

右連線,以dataframe2中用作連線鍵的列

left_index

將dataframe1行索引用作連線鍵

right_index

將dataframe2行索引用作連線鍵

sort

根據連線鍵對合併後的資料進行排列,預設為true

suffixes

對兩個資料集中出現的重複列,新資料集中加上字尾_x,_y進行區別

三、merge用法舉例

#利用字典dict建立資料框

datadf1=pd.dataframe(

)datadf2=pd.dataframe(

)print

(datadf1)

print

(datadf2)

>>

>

lkey value

0 foo 1

1 bar 2

2 baz 3

3 foo 4

rkey value

0 foo 5

1 bar 6

2 qux 7

3 bar 8

#inner鏈結

datalfdf=datadf1.merge(datadf2, left_on=

'lkey'

,right_on=

'rkey'

)>>

>

lkey value_x rkey value_y

0 foo 1 foo 5

1 foo 4 foo 5

2 bar 2 bar 6

3 bar 2 bar 8

#right鏈結

datadf1.merge(datadf2, left_on=

'lkey'

, right_on=

'rkey'

,how=

'right'

)>>

>

lkey value_x rkey value_y

0 foo 1.0 foo 5

1 foo 4.0 foo 5

2 bar 2.0 bar 6

3 bar 2.0 bar 8

4 nan nan qux 7

#outer鏈結

datadf1.merge(datadf2, left_on=

'lkey'

, right_on=

'rkey'

, how=

'outer'

)>>

>

lkey value_x rkey value_y

0 foo 1.0 foo 5.0

1 foo 4.0 foo 5.0

2 bar 2.0 bar 6.0

3 bar 2.0 bar 8.0

4 baz 3.0 nan nan

5 nan nan qux 7.0

pandas資料連線合併

1 df1和df2相同列合併 圖中可以看出合併後出現了重複行,可以使用df.drop duplicates 刪除重複行 另外我們可以看到合併之後的資料行索引還是以前df的索引值,要想使新生成的df索引從0開始,可以新增 ignore index true 執行結果如下 2 df1和df2不同列合併 ...

Pandas 連線合併函式merge 詳解

pandas中的merge 函式類似於sql中join的用法,可以將不同資料集依照某些字段 屬性 進行合併操作,得到乙個新的資料集。用法 dataframe1.merge dataframe2,how inner on none,left on none,right on none,left ind...

資料分析入門 pandas之合併函式merge

merge有點類似sql中的join,可以將不同資料集按照某些字段進行合併,得到新的資料集 1.引數一覽表 2.一對一連線 預設情況下,會按照相同欄位的進行連線 例如有相同欄位emp的兩個df,merge的時候就會根據emp進行連線,且根據引數知道,預設是內連線 使用預設的不是很明了,通常情況下,我...