擅长:python、mysql、java
<p>以下是最佳使用<a href="https://docs.scipy.org/doc/numpy/reference/generated/numpy.select.html" rel="nofollow noreferrer">^{<cd1>}</a>:</p>
<pre><code>m1 = df['diff'] > df['pv']
m2 = df['diff'] < -df['pv']
#if need check negative and positive diff
m1 = (df['diff'] > df['pv']) & (df['diff'] > 0)
m2 = (df['diff'] < -df['pv']) & (df['diff'] < 0)
df['flag'] = np.select([m1, m2], ['short','excess'], 'pass')
#solution with double np.where
df['flag'] = np.where(m1, 'short',
np.where(m2, 'excess', 'pass'))
print (df)
code diff pv flag
0 0 -344 100 excess
1 1 344 100 short
2 2 2 100 pass
3 3 -5 150 pass
4 4 -200 150 excess
5 5 200 150 short
</code></pre>