當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python pandas.merge_asof()用法及代碼示例


此方法用於執行asof合並。這類似於left-join,除了我們匹配最近的鍵而不是相等的鍵。兩個DataFrame都必須按鍵排序。

用法: pandas.merge_asof(left, right, on=None, left_on=None, right_on=None, left_index=False, right_index=False, by=None, left_by=None, right_by=None, suffixes=(‘_x’, ‘_y’), tolerance=None, allow_exact_matches=True, direction=’backward’, )

參數:

  • left, right: DataFrame
  • on:標簽,要加入的字段名稱。必須在兩個DataFrame中都找到。
  • left_on:標簽,要在左側DataFrame中加入的字段名稱。
  • right_on:標簽,要在右側DataFrame中加入的字段名稱。
  • left_index:布爾值,使用左側DataFrame的索引作為連接鍵。
  • right_index:布爾值,使用正確的DataFrame的索引作為連接鍵。

下麵是上述方法的實現和一些示例:

範例1:



Python3

# importing package 
import pandas 
  
# creating data 
left = pandas.DataFrame({'a':[1, 5, 10],  
                         'left_val':['a', 'b', 'c']}) 
  
right = pandas.DataFrame({'a':[1, 2, 3, 6, 7], 
                          'right_val':[1, 2, 3, 6, 7]}) 
  
# view data 
print(left) 
print(right) 
  
# applying merge_asof on data 
print(pandas.merge_asof(left, right, on='a')) 
print(pandas.merge_asof(left, right, on='a',  
                        allow_exact_matches=False))

輸出:

範例2:

Python3

# importing package 
import pandas 
  
# creating data 
left = pandas.DataFrame({'a':[1, 5, 10],  
                         'left_val':['a', 'b', 'c']}) 
  
right = pandas.DataFrame({'a':[1, 2, 3, 6, 7], 
                          'right_val':[1, 2, 3, 6, 7]}) 
  
# view data 
print(left) 
print(right) 
  
# applying merge_asof on data 
print(pandas.merge_asof(left, right, on='a',  
                        direction='forward')) 
print(pandas.merge_asof(left, right, on='a', 
                        direction='nearest'))

輸出:

範例3:

Python3

# importing package 
import pandas 
  
# creating data 
left = pandas.DataFrame({'left_val':['a', 'b', 'c']},  
                        index=[1, 5, 10]) 
  
right = pandas.DataFrame({'right_val':[1, 2, 3, 6, 7]},  
                         index=[1, 2, 3, 6, 7]) 
  
# view data 
print(left) 
print(right) 
  
# applying merge_asof on data 
print(pandas.merge_asof(left, right, left_index=True,  
                        right_index=True))

輸出:




相關用法


注:本文由純淨天空篩選整理自deepanshu_rustagi大神的英文原創作品 pandas.merge_asof() function in Python。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。