Pandas:或者如果值包含“”,则为d

2024-09-20 04:00:41 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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”,这样它就说:股票=0,股票有“-”号,日期不为空那么做

最好的办法是什么

谢谢

--编辑-简单数据帧--

stock,date
2,9-9-2019
-4,9-9-2019

Tags: 代码dfdatestock库存npdaysselect
2条回答

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

这两条线是:

num = df._get_numeric_data()
num[num < 0] = 0

感谢您的回复和检查所有

我认为您需要将==更改为<=,将&更改为|,以便按位OR

m2 = (df['stock']<=0) | (df['date'].notna())

相关问题 更多 >