我有一个包含两个数字列item_cnt_day和item_price的数据格式。
我想在我的dataframe中创建一个名为rev的新列,该列由(item_cnt_day * item_price)计算。但是,我只想在item_cnt_day较大或等于0的情况下添加条件rev = item_cnt_day * item_price,否则,rev = 0。在创建新列rev时,您能帮我编写此条件的代码吗?
发布于 2021-08-22 15:34:50
您可以使用带有布尔掩蔽的loc访问器:
df['rev']=0
df.loc[df['item_cnt_day'].ge(0),'rev']=df['item_cnt_day'].mul(df['item_price'])或
您可以使用where()
df['rev']=df['item_cnt_day'].mul(df['item_price']).where(df['item_cnt_day'].ge(0),0)
#df['item_cnt_day'].mul(df['item_price']).mask(df['item_cnt_day'].lt(0),0)或
通过np.where()
import numpy as np
df['rev']=np.where(df['item_cnt_day'].ge(0),df['item_cnt_day'].mul(df['item_price']),0)https://stackoverflow.com/questions/68882724
复制相似问题