首页 > 解决方案 > 使用比较运算符处理条件语句中的 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"。

谢谢!

标签: python

解决方案


如果您使用or而不是and. &用于位操作,所以这是你的主要问题。

假设这些是您将获得的唯一两个值(浮点数或字符串“NA”),您可以这样做:

metric = "PASS" if self.area_ratio == "NA" or self.area_ratio >= 0.8 else "FAIL"

这不是一种超级可靠的方法,但是因为您已经在同一个变量中混合了类型......


推荐阅读