01.16 數據處理必備工具之強大的pandas.merge合併方法!

數據分析和建模方面絕大部分的工作都是做數據處理,pandas是python標準庫提供了一組高級的、靈活的、高效的核心算法和函數,能夠輕鬆地將數據規整成適合機器學習建模的形式。

數據處理必備工具之強大的pandas.merge合併方法!

pandas對象中的數據可通過一些內置的方法來合併,本文先給大家介紹一下數據的合併操作:pandas.merge。

pandas.merge的作用

pandas.merge 可根據一個或多個鍵將不同的dataframe中的行連接起來。使用方式如下:

數據處理必備工具之強大的pandas.merge合併方法!

pandas.merge的參數介紹

merge函數大致有12種,具體含義如下:

  • left: 參與合併左側DataFrame對象
  • right: 參與合併的右側DataFrame對象
  • on: 用於連接的列名。 必須在左側和右側DataFrame對象中找到。 如果未傳遞參數且left_index和right_index也為False,則DataFrame中的列的交集將被推斷為連接鍵。
  • left_on:左側DataFrame中的列或索引級別用作鍵。 可以是列名,索引級名稱,也可以是長度等於DataFrame長度的數組。
  • right_on:左側DataFrame中的列或索引級別用作鍵。 可以是列名,索引級名稱,也可以是長度等於DataFrame長度的數組。
  • left_index:如果為True,則使用左側DataFrame中的索引(行標籤)作為其連接鍵。 對於具有MultiIndex(分層)的DataFrame,級別數必須與右側DataFrame中的連接鍵數相匹配。
  • right_index: 與left_index功能相似。
  • how: ‘left’, ‘right’, ‘outer’, ‘inner’,默認inner。
  • sort:默認inner按字典順序通過連接鍵對結果DataFrame進行排序。 默認為True,設置為False將在很多情況下顯著提高性能。
  • suffixes: 用於重疊列的字符串後綴元組。 默認為(‘x’,’ y’)。
  • copy: 始終從傳遞的DataFrame對象複製數據(默認為True),即使不需要重建索引也是如此。
  • indicator:將一列添加到名為merge的輸出DataFrame,其中包含有關每行源的信息。merge是分類類型,並且對於其合併鍵僅出現在“左”DataFrame中的觀察值,取得值為left_only,對於其合併鍵僅出現在“右”DataFrame中的觀察值為right_only,並且如果在兩者中都找到觀察點的合併鍵,則為left_only。

pandas.merge實例

首先創建兩個數據框,並賦予數據,分別命名為left,right。

import pandas as pd
left = pd.DataFrame({'key1': ['k0', 'k0', 'k1', 'k2'], 'key2': ['k0', 'k1', 'k0', 'k1'],
'A': ['0', '1', '2', '3'], 'B': ['0', '1', '2', '3']})
right = pd.DataFrame({'key1': ['k0', 'k1', 'k1', 'k2'], 'key2': ['k0', 'k0', 'k0', 'k0'],
'C': ['0', '1', '2', '3'], 'D': ['0', '1', '2', '3']})
數據處理必備工具之強大的pandas.merge合併方法!

使用左連接合並參數

# Use keys from left frame only
left_result = pd.merge(left, right, how='left', on=['key1', 'key2'])
數據處理必備工具之強大的pandas.merge合併方法!

使用左連接合並參數

# Use keys from right frame only
right_result = pd.merge(left, right, how='right', on=['key1', 'key2'])
數據處理必備工具之強大的pandas.merge合併方法!

使用外連接合並參數

# Use keys from outer frame only
outer_result = pd.merge(left, right, how='outer', on=['key1', 'key2'])
數據處理必備工具之強大的pandas.merge合併方法!

使用內連接合並參數

# Use keys from inner frame only
inner_result = pd.merge(left, right, how='inner', on=['key1', 'key2'])
數據處理必備工具之強大的pandas.merge合併方法!

好了,今天就到這,大家感興趣的話,其他參數可以自己驗證一下,如有疑問,歡迎關注留言!!!


分享到:


相關文章: