首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Pandas :或者如果值包含"-“,则执行以下操作

Pandas :或者如果值包含"-“,则执行以下操作
EN

Stack Overflow用户
提问于 2019-01-11 22:24:38
回答 2查看 44关注 0票数 1

我有以下代码(已翻译):

代码语言:javascript
运行
复制
m1 = df['stock']>=1
m2 = (df['stock']==0) & (df['date'].notna())
df['deliverytime'] = np.select([m1, m2], ['2-4 days', df['date']], 'unknown')

所以这意味着:当库存大于0 (1)时,那么得到2-4天,否则,检查日期,如果库存是例如0,没有日期,那么就会有“未知”。

现在如下所示;供应商还添加了负库存值,例如:-10,-5等。

我想修改"m2",这样它就会显示: stock = 0,stock有"-“符号,并且date不是空的然后do..

做到这一点的最好方法是什么?

谢谢!

-- edit - simple dataframe --

代码语言:javascript
运行
复制
stock,date
2,9-9-2019
-4,9-9-2019
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-01-14 15:48:09

我添加了两行代码来将负值替换为0,这是一种不同的方法,但它是有效的!

这两行是:

代码语言:javascript
运行
复制
num = df._get_numeric_data()
num[num < 0] = 0

感谢您的重复和检查!

票数 0
EN

Stack Overflow用户

发布于 2019-01-11 22:27:55

我认为您需要将==更改为<=,将&更改为|以实现逐位OR

代码语言:javascript
运行
复制
m2 = (df['stock']<=0) | (df['date'].notna())
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54148417

复制
相关文章

相似问题

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