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