python中 merage函數與concat函數的用法

每次都不能很好的使用merge和concat這兩個函數,本次做一個搬運工從前人那邊搬來一些信息,希望自己熟練掌握其使用方法

一、merage

pandas提供了一個類似於關係數據庫的連接(join)操作的方法<Strong>merage</Strong>,可以根據一個或多個鍵將不同DataFrame中的行連接起來,語法如下:

1

2

3

merge(left, right, how='inner', on=None, left_on=None, right_on=None,

      left_index=False, right_index=False, sort=True,

      suffixes=('_x''_y'), copy=True, indicator=False)

merge(left, right, how='inner', on=None, left_on=None, right_on=None,

      left_index=False, right_index=False, sort=True,

      suffixes=('_x', '_y'), copy=True, indicator=False)

作爲一個功能完善、強大的語言,python的pandas庫中的merge()支持各種內外連接。

  • left與right:兩個不同的DataFrame
  • how:指的是合併(連接)的方式有inner(內連接),left(左外連接),right(右外連接),outer(全外連接);默認爲inner
  • on : 指的是用於連接的列索引名稱。必須存在右右兩個DataFrame對象中,如果沒有指定且其他參數也未指定則以兩個DataFrame的列名交集做爲連接鍵
  • left_on:左則DataFrame中用作連接鍵的列名;這個參數中左右列名不相同,但代表的含義相同時非常有用。
  • right_on:右則DataFrame中用作 連接鍵的列名
  • left_index:使用左則DataFrame中的行索引做爲連接鍵
  • right_index:使用右則DataFrame中的行索引做爲連接鍵
  • sort:默認爲True,將合併的數據進行排序。在大多數情況下設置爲False可以提高性能
  • suffixes:字符串值組成的元組,用於指定當左右DataFrame存在相同列名時在列名後面附加的後綴名稱,默認爲('_x','_y')
  • copy:默認爲True,總是將數據複製到數據結構中;大多數情況下設置爲False可以提高性能
  • indicator:在 0.17.0中還增加了一個顯示合併數據中來源情況;如只來自己於左邊(left_only)、兩者(both)
pd.merge(df1, df2, on='key')   ##默認的是SQL中的內連接

pd.merge(df1, df2, on='key', how='left')  ## 左連接

二、concat

concat方法相當於數據庫中的全連接(UNION ALL),可以指定按某個軸進行連接,也可以指定連接的方式join(outer,inner 只有這兩種)。與數據庫不同的是concat不會去重,要達到去重的效果可以使用drop_duplicates方法。另外 append也有縱向連接的功能。

concat 除了在縱向連接之前,還可以通過參數  axis=1 實現在橫向的連接。

concat(objs, axis=0, join='outer', join_axes=None, ignore_index=False,
           keys=None, levels=None, names=None, verify_integrity=False, copy=True):

 

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