擅长:python、mysql、java
<p>将其矢量化:</p>
<pre><code>df.iloc[:, 3] = df.iloc[:, 3].abs() * (2 * (df.iloc[:, 1] != 1) - 1)
</code></pre>
<p>说明:</p>
<p>将布尔级数<code>df.iloc[:, 1] != 1</code>视为int,将其转换为1和0。乘以2,得到2和0。减去1后,得到-1,其中第一列为1,否则为1。最后,它与第三列的绝对值相乘,第三列强制符号</p>
<p>与for循环相比,矢量化通常提供一个数量级或两个加速</p>