擅长:python、mysql、java
<p>你可以用<code>assign</code>+<code>merge</code>来做。你知道吗</p>
<pre><code>table.assign(val2 = table['value'] - 1)
.merge(lookup.reset_index(), left_on='val2', right_on='index', how='left')
.assign(result = lambda x: x['rating'].mul(x['Match Rating']).add(x['const']))
[['col1', 'col2', 'rating', 'value', 'result']]
</code></pre>
<p>输出:</p>
<pre><code> col1 col2 rating value result
0 England France 2 1 54.0
1 USA Spain 4 1 58.0
2 Germany Italy -5 2 38.0
3 Canada Jamaica 2 2 52.0
4 Cuba Bulgaria 1 3 49.5
5 Vietnam South Korea 2 3 52.0
</code></pre>
<p><code>lookup</code>问题列表中的数据帧。你知道吗</p>
<pre><code>lookup = pd.DataFrame(list([pd.Series([50,2],["const","Match Rating"]),
pd.Series([48,2],["const","Match Rating"]),
pd.Series([47,2.5],["const","Match Rating"])]))
</code></pre>