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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章