当第1列> 0且第2列<= 0时如何从第1列到第2列分配值

dai*_*yue 4 python dataframe python-3.x pandas

我有一个df

delta1    delta2
  0         -1
  2          0
 -1          0
  0          0
Run Code Online (Sandbox Code Playgroud)

我想知道如何分配的值delta2delta1只有delta1 > 0delta2 <= 0; 结果看起来像

delta1    delta2
  0         -1
  0          0
 -1          0
  0          0 
Run Code Online (Sandbox Code Playgroud)

use*_*203 6

使用numpy.where

df['delta1'] = np.where(df.delta1.gt(0) & df.delta2.le(0), df.delta2, df.delta1)
Run Code Online (Sandbox Code Playgroud)

   delta1  delta2
0       0      -1
1       0       0
2      -1       0
3       0       0
Run Code Online (Sandbox Code Playgroud)