<p>将<a href="http://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.lookup.html" rel="nofollow noreferrer">^{<cd1>}</a>与create index by <code>Bore</code>列一起使用,如有必要,将列转换为整数:</p>
<pre><code>df['Value'] = (lookup_df.set_index('Bore').rename(columns=int)
.lookup(df['Bore'], df['Temperature']))
print (df)
Bore Temperature Value
0 4.00 200 0.5
1 0.75 500 0.5
2 6.00 200 1.0
3 2.00 400 0.5
4 3.00 200 0.5
5 0.75 300 0.5
</code></pre>
<p>如果可能缺少某些值,因此第一个解决方案失败,则可以将<a href="http://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.melt.html" rel="nofollow noreferrer">^{<cd3>}</a>与<a href="http://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.merge.html" rel="nofollow noreferrer">^{<cd4>}</a>一起使用,如果值是<code>melt</code>之后<code>Temperature</code>列中的整数,则可以随意删除<code>assign</code>:</p>
<pre><code>df1 = (lookup_df.melt('Bore', var_name='Temperature', value_name='Value')
.assign(Temperature = lambda x: x['Temperature'].astype(int)))
df = df.merge(df1, how='left')
print (df)
Bore Temperature Value
0 4.00 200 0.5
1 0.75 500 0.5
2 6.00 200 1.0
3 2.00 400 0.5
4 3.00 200 0.5
5 0.75 300 0.5
</code></pre>