擅长:python、mysql、java
<p>问题在于布尔表达式的第二部分。大概<code>d7</code>不止两行,否则就不会有这个问题<code>d7['Currency'] == fxratetable['from_currency']</code>逐行比较两个系列,当行用完<code>fxratetable</code>时,它不知道再将<code>d7</code>与什么进行比较</p>
<p>我不知道您是否已开始使用NumPy,或者您所能做的事情是否有限制,但merge语句可以非常轻松地处理这一问题:</p>
<pre><code># Merge the exchange rate
d7 = pd.merge(d7, fxratetable, left_on='Currency', right_on='from_currency', how='left')
# Find the rows which have a non-NaN exchange rate and multiply
d7['CAD'] = np.where(~np.isnan(d7['fx_rate']), d7['CAD']*d7['fx_rate'], d7['CAD'])
</code></pre>