当第一列大于0且第二列小于等于0时,如何将第一列的值分配给第二列

4

我有一个df

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

我想知道如何仅在delta1 > 0delta2 <= 0的情况下将delta2的值赋给delta1;结果如下:

delta1    delta2
  0         -1
  0          0
 -1          0
  0          0 
2个回答

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

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

不应该赋值为 0,而应该赋值为 delta2。他说:“我想知道如何将 delta2 的值赋给 delta1”。 - user3483203

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接