<p>你可以用<a href="https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.merge_asof.html" rel="nofollow noreferrer">^{<cd1>}</a>来做这个</p>
<p>但是,此方法的一个要求是,必须对左侧帧上的键进行排序。因此需要在下面的示例中使用<a href="https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.reset_index.html" rel="nofollow noreferrer">^{<cd2>}</a>、<a href="https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.sort_values.html" rel="nofollow noreferrer">^{<cd3>}</a>,然后使用<a href="https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.set_index.html" rel="nofollow noreferrer">^{<cd4>}</a>、<a href="https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.sort_index.html" rel="nofollow noreferrer">^{<cd5>}</a>:</p>
<pre><code>df_merged = (pd.merge_asof(df1.reset_index().sort_values('Net Cost'),
df2[['Cost (low)', 'Retail']],
left_on='Net Cost',
right_on='Cost (low)')
.set_index('index')
.sort_index()
.drop('Cost (low)', axis=1))
print(df_merged)
Cat Nr Net Cost Status Retail
index
2801 825646183913 8.50 ACTIVE 16.99
2802 603497902941 7.96 ACTIVE 14.99
2803 603497897452 9.35 ACTIVE 18.99
2804 4050538324761 14.45 ACTIVE 26.99
2805 4050538307429 10.20 ACTIVE 18.99
</code></pre>