擅长:python、mysql、java
<p>您可以将布尔掩码与数据帧的<code>.loc</code>或<code>.ix</code>属性一起使用。</p>
<pre><code>mask = df['A'] > 2
df.ix[mask, 'A'] = df.ix[mask, 'C'] - df.ix[mask, 'D']
</code></pre>
<p>如果你有很多分支,那么你可以:</p>
<pre><code>def func(row):
if row['A'] > 0:
return row['B'] + row['C']
elif row['B'] < 0:
return row['D'] + row['A']
else:
return row['A']
df['A'] = df.apply(func, axis=1)
</code></pre>
<p><code>apply</code>通常应该比for循环快得多。</p>