我有一个df
,
delta1 delta2
0 -1
2 0
-1 0
0 0
我想知道仅在delta2
和delta1
的情况下如何将delta1 > 0
的值分配给delta2 <= 0
;结果看起来像
delta1 delta2
0 -1
0 0
-1 0
0 0
答案 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