1 回答
TA贡献1785条经验 获得超4个赞
这是pd.merge_asof在首先处理重复项之后。排序'A1'然后在 上删除重复项'B1','A1'为每个唯一的留下最大的值'B1':
import pandas as pd
#df2 = df2.sort_values('B2') # If not sorted by `B2`
pd.merge_asof(df2,
df1.sort_values('A1').drop_duplicates('B1', keep='last').sort_values('B1'),
left_on='B2', right_on='B1', direction='forward')
输出:
A2 B2 A1 B1
0 -69.06 -12.64 -128.65 -12.30
1 -86.88 -12.12 -117.74 -11.98
2 -95.95 -11.35 -109.43 -10.03
3 -103.87 -10.67 -109.43 -10.03
4 -105.78 -9.63 -87.27 -9.33
5 -108.11 -9.20 -85.59 -5.96
6 -111.07 -9.06 -85.59 -5.96
7 -126.42 -6.37 -85.59 -5.96
如果您需要保持原来的顺序,可以考虑重置索引,以便在合并后将其添加为列,然后将其设置回原位并对索引进行排序。
添加回答
举报