我有以下代码(已翻译):
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
2,9-9-2019
-4,9-9-2019
答案 0 :(得分:1)
我认为您需要按位==
将<=
更改为&
,将|
更改为OR
:
m2 = (df['stock']<=0) | (df['date'].notna())
答案 1 :(得分:0)
我添加了两行代码,以将负值替换为0,这是一种不同的方法,但是有效!
2行是:
num = df._get_numeric_data()
num[num < 0] = 0
感谢您补充并检查所有内容!