首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python熊猫数据计算

python熊猫数据计算
EN

Stack Overflow用户
提问于 2021-08-22 15:26:47
回答 1查看 74关注 0票数 1

我有一个包含两个数字列item_cnt_dayitem_price的数据格式。

我想在我的dataframe中创建一个名为rev的新列,该列由(item_cnt_day * item_price)计算。但是,我只想在item_cnt_day较大或等于0的情况下添加条件rev = item_cnt_day * item_price,否则,rev = 0。在创建新列rev时,您能帮我编写此条件的代码吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-22 15:34:50

您可以使用带有布尔掩蔽的loc访问器:

代码语言:javascript
复制
df['rev']=0
df.loc[df['item_cnt_day'].ge(0),'rev']=df['item_cnt_day'].mul(df['item_price'])

您可以使用where()

代码语言:javascript
复制
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()

代码语言:javascript
复制
import numpy as np
df['rev']=np.where(df['item_cnt_day'].ge(0),df['item_cnt_day'].mul(df['item_price']),0)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68882724

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档