python - 使用比较运算符处理条件语句中的 NA 值
问题描述
我使用以下条件语句来定义metric:
metric = "FAIL" if ((self.Mean <= -20.0) & (self.area_ratio>= 0.8)) else "PASS"
有时,self.area_ratio = "NA"。
这当然给了我错误:TypeError: '>=' not supported between 'str' 和 'float' 的实例。
如何保持这种条件语句格式来定义metric,同时支持 self.area_ratio 可以等于“NA”或可以等于一个整数?如果self.area_ratio = "NA",metric 应该等于 "PASS"。
谢谢!
解决方案
如果您使用or
而不是and
. &
用于位操作,所以这是你的主要问题。
假设这些是您将获得的唯一两个值(浮点数或字符串“NA”),您可以这样做:
metric = "PASS" if self.area_ratio == "NA" or self.area_ratio >= 0.8 else "FAIL"
这不是一种超级可靠的方法,但是因为您已经在同一个变量中混合了类型......
推荐阅读
- javascript - if (typeof === "undefined") {} 工作不正常
- wordpress - 简码中的联系表格 7 收件人
- android - 如何使用 Ionic 获得终端访问权限?
- swift - 内容过多时UILabel在StackView中消失
- r - 如何使用 dplyr::count() 和 purrr::map() 循环分组数据帧
- c# - 寻找一种在 httpclient 获取/发送请求系统中实现多个代理的方法
- javascript - 在这里让 multer 与 Node 和 Express 一起工作的正确方法是什么?
- python - EC2 实例 (Nginx) 上的 502 错误网关错误
- reactjs - 无法在左上角设置文本以输入高度
- swift - 当元素到达屏幕顶部时,将元素与 ScrollView 对接