1. 程式人生 > >Pandas中merge()用法

Pandas中merge()用法

merge函式用途

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

merge()函式的具體引數

  • 用法:
    DataFrame1.merge(DataFrame2, how=‘inner’, on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=False, suffixes=(’_x’, ‘_y’))
  • 引數說明
引數 說明
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({'lkey':['foo','bar','baz','foo'],
                     'value'
:[1,2,3,4]}) dataDf2=pd.DataFrame({'rkey':['foo','bar','qux','bar'], 'value':[5,6,7,8]}) 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)
#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)
#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)
#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