【发布时间】:2021-12-09 00:08:45
【问题描述】:
我有以下数据框:
DF1:
key | col1 | col2
1 13 a
1 15 b
1 18 c
... ... ...
DF2:
key | col1
1 14
1 15
1 19
...
我想用DF1 中的col2 填充DF2,方法是使用以下键:["key", "col1"]。如果DF1.col1 和DF2.col1 没有匹配项,我想在DF1.col1 中找到小于DF2.col1 的最后一个匹配项。
所以期望的输出是:
DF2:
key | col1 | col2
1 14 a # Not exact match, so it will take DF1.col1 = 13
1 15 b
1 19 c # Not exact match, so it will take DF1.col1 = 18
... ... ...
如果不匹配,则使用传统的 pandas 合并返回 None:
result = pd.merge(DF1, DF2, how="right", on=["key", "col1"])
结果:
key | col1 | col2
1 14 None
1 15 b
1 19 None
... ... ...
【问题讨论】: