<p>我的数据帧混合了浮点运算和布尔运算:</p>
<pre><code>df = pd.DataFrame.from_csv("C:\....")
df['isActive'] = (df.turns >= 250) & (df.alivePct > 0) & (df.changePct > 0)
</code></pre>
<p>我想创建一个新列,如果isActive==false,则值=0,否则值等于某个计算量,如下所示:</p>
^{pr2}$
<p>但是因为数据框激活是一系列我得到这个错误:</p>
<pre><code>ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
</code></pre>
<p>三元if/else运算符似乎不能用于矢量化操作。在</p>
<p>我还可以通过手动迭代来实现这一点?在</p>
<p>(注:一个简单的黑客攻击是通过数据框激活它将值设置为0,因为False==0。不过,我想知道一个更通用的解决方案。)</p>