我知道之前也有人问过类似的问题。但是,我的问题略有不同。我试图跨多个列获取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')
我得到的输出是:
我也希望加入业务。 因此,联接的right_val和业务应该为所有值显示NaN。
答案 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