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

时间:2019-03-14 17:26:50

标签: python python-3.x pandas dataframe

我有一个df

delta1    delta2
  0         -1
  2          0
 -1          0
  0          0

我想知道仅在delta2delta1的情况下如何将delta1 > 0的值分配给delta2 <= 0;结果看起来像

delta1    delta2
  0         -1
  0          0
 -1          0
  0          0 

2 个答案:

答案 0 :(得分:6)

使用numpy.where

df['delta1'] = np.where(df.delta1.gt(0) & df.delta2.le(0), df.delta2, df.delta1)

   delta1  delta2
0       0      -1
1       0       0
2      -1       0
3       0       0

答案 1 :(得分:2)

使用以下内容:

m=df.delta1.gt(0)&df.delta2.le(0)
df.loc[m,'delta1']=df.delta2
print(df)
   delta1  delta2
0       0      -1
1       0       0
2      -1       0
3       0       0