Python 使用np.where根据条件为列赋值

Python 使用np.where根据条件为列赋值,python,pandas,numpy,Python,Pandas,Numpy,虽然这个问题看起来很相似,但我对此束手无策。以下是数据样本。我想添加productView和Order的编号,其中productView

虽然这个问题看起来很相似,但我对此束手无策。以下是数据样本。我想添加productView和Order的编号,其中productView
           productView  order
userId      
A                4.5    5.0
B               1.5     2.5
C               4.0     2.0
D                2.0    3.0
我尝试了以下代码,但出现了抛出错误

order_Segemnt.productView=np.where(order_Segment[order_Segment.productView< order_Segment.order]['productView'],order_Segment.productView+order_Segment.order, order_Segment.productView)
如何实现我的目标???

语法-

解决方案-


可能是
mask

df['New']=df.productView.mask(df.order>df.productView,df.sum(1))
df
Out[271]: 
        productView  order  New
userId                         
A               4.5    5.0  9.5
B               1.5    2.5  4.0
C               4.0    2.0  4.0
D               2.0    3.0  5.0
np.where(condition, value1, value2)
np.where(
   df.productView < df.order, df.productView + df.order, df.productView
)
array([9.5, 4. , 4. , 5. ])
m = df.productView < df.order
df.loc[m, 'productView'] = df.loc[m, ['productView', 'order']].sum(1)
df['New']=df.productView.mask(df.order>df.productView,df.sum(1))
df
Out[271]: 
        productView  order  New
userId                         
A               4.5    5.0  9.5
B               1.5    2.5  4.0
C               4.0    2.0  4.0
D               2.0    3.0  5.0