• mask 逻辑判断中 不能用or 而是用 |
  X5zJxoD00Cah 2023年11月02日 56 0
  • mask 逻辑判断中 不能用or 而是用 |

  • TypeError Traceback (most recent call last) Cell In[36], line 3 1 df = obj.df_投料[['数量', '入库重量']] 2 df['领料为零'] = df.数量.mask( ----> 3 any(df.数量.isna(), (df.数量.round(0) == 0)), 4 df.入库重量 5 ) TypeError: any() takes exactly one argument (2 given)
  •  这个报错是因为在使用any()函数时传入了两个参数,但是any()函数只接受一个参数。根据你的代码,我猜测你想要使用any()函数来检查df.数量.isna()(df.数量.round(0) == 0)两个条件是否有任意一个为真。

要解决这个问题,你可以使用逻辑运算符|来代替any()函数。修改代码如下:

df['领料为零'] = df.数量.mask(
    df.数量.isna() | (df.数量.round(0) == 0),
    df.入库重量
)

这样修改后,df.数量.isna() | (df.数量.round(0) == 0)会返回一个布尔值的Series,表示每个元素是否满足条件。然后,df.数量.mask()函数会根据这个布尔值的Series来选择相应的值进行替换。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

X5zJxoD00Cah