Python中的pandas.merge_asof()函数

Python中的pandas.merge_asof()函数

这个方法是用来进行asof合并的。这类似于左键合并,只是我们以最近的键而不是相等的键进行匹配。两个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:数据帧
  • on : label,要连接的字段名。必须在两个数据框架中找到。
  • left_on : label,在左边数据框架中加入的字段名。
  • right_on : label,在右边数据框架中加入的字段名。
  • left_index : boolean, 使用左边数据框架的索引作为连接键。
  • right_index : boolean, 使用右边数据框架的索引作为连接键。

下面是上述方法的实现和一些例子。

例子1 :

# 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))
Python

输出:

Python中的pandas.merge_asof()函数

####

例子2 :

# 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'))
Python

输出 :

Python中的pandas.merge_asof()函数

例子3 :

# 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))
Python

输出:

Python中的pandas.merge_asof()函数

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册