merge_asof多列

时间:2019-04-24 13:08:06

标签: python pandas

我知道之前也有人问过类似的问题。但是,我的问题略有不同。我试图跨多个列获取merge_asof的功能。这是数据集:

import pandas as pd
left = pd.DataFrame({'a':[1,5,10]\
                    ,'business'['FRC','FRC','FRC']\
                    ,'left_val':['a','b','c']})
right = pd.DataFrame({'a':[1,2,3,6]\
                    ,'business':['ED','ED','ED','ED']\
                    ,'right_val':[1,2,3,6]})
pd.merge_asof(left,right,on='a',direction='forward')

我得到的输出是:

enter image description here

我也希望加入业务。 因此,联接的right_val和业务应该为所有值显示NaN。

1 个答案:

答案 0 :(得分:1)

我相信您需要merge_asof中的参数by

  

依据:列名或列名列表
  在执行合并操作之前,请在这些列上进行匹配。

print (pd.merge_asof(left,right,on='a',direction='forward', by='business'))
    a business left_val  right_val
0   1      FRC        a        NaN
1   5      FRC        b        NaN
2  10      FRC        c        NaN