如何在下一个最高键值上合并数据帧
How to merge dataframes on the next highest key value
我有 df1:
a
2013
2014
2015
和 df2
a
2014
2017
2018
2021
我的目标是将 df1 中的键 a 合并到 df2 中的下一个最高键,例如2013->2014、2014->2017 和 2015->2017。因此,即使两个键相等,我也想在下一个最高的键上合并,这可能吗?
使用 merge_asof
与 direction='forward'
和参数 allow_exact_matches=False
:
df = pd.merge_asof(df1, df2.rename(columns={'a':'a1'}),
left_on='a',
right_on='a1',
direction='forward',
allow_exact_matches=False)
print (df)
a a1
0 2013 2014
1 2014 2017
2 2015 2017
我有 df1:
a
2013
2014
2015
和 df2
a
2014
2017
2018
2021
我的目标是将 df1 中的键 a 合并到 df2 中的下一个最高键,例如2013->2014、2014->2017 和 2015->2017。因此,即使两个键相等,我也想在下一个最高的键上合并,这可能吗?
使用 merge_asof
与 direction='forward'
和参数 allow_exact_matches=False
:
df = pd.merge_asof(df1, df2.rename(columns={'a':'a1'}),
left_on='a',
right_on='a1',
direction='forward',
allow_exact_matches=False)
print (df)
a a1
0 2013 2014
1 2014 2017
2 2015 2017