当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。