亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用比較運算符處理條件語句中的 NA 值

使用比較運算符處理條件語句中的 NA 值

手掌心 2023-12-09 16:53:58
我使用以下條件語句來定義metric:metric = "FAIL" if ((self.Mean <= -20.0) & (self.area_ratio>= 0.8)) else "PASS"有時,self.area_ratio =“NA”。這當然給了我錯誤: TypeError: '>=' notsupported Between Examples of 'str' and 'float'.如何保持此條件語句格式來定義metric,同時支持 self.area_ratio 可以等于“NA”或可以等于整數?如果self.area_ratio =“NA”,則度量應等于“PASS”。
查看完整描述

3 回答

?
偶然的你

TA貢獻1841條經驗 獲得超3個贊

or如果你使用而不是 ,結果會更容易and。 &用于位操作,所以這是您的主要問題。

假設這是您將獲得的唯一兩個值(浮點數或字符串“NA”),您可以這樣做:

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

這不是一種超級可靠的方法,但由于您已經在同一變量中混合類型......


查看完整回答
反對 回復 2023-12-09
?
繁星淼淼

TA貢獻1775條經驗 獲得超11個贊

這就是您所需要的。self.area_ratio如果不是數字,您將拋出異常。所以你只需捕獲該異常并設置metric為PASS當你這樣做時。


try:

    metric = "FAIL" if (self.area_ratio >= 0.8) else "PASS"

except TypeError as ex:

    metric = "PASS"

如果您想對其他非數字值執行不同的操作,則可以在子句中添加更多邏輯except來處理非數字值之間的區分行為。


如果您確定這NA是您將看到的唯一非數字值,則可以將其添加到條件語句中,如下所示:


metric = "PASS" if self.area_ratio == 'NA' or (self.area_ratio < 0.8) else "FAIL"

self.area_ratio但是如果有任何其他非數字值,這將引發您不處理的異常。


查看完整回答
反對 回復 2023-12-09
?
慕田峪9158850

TA貢獻1794條經驗 獲得超7個贊

 metric = "PASS" if isinstance(self.area_ratio, str) else ("FAIL" if ((self.area_ratio != "NA") & (self.area_ratio>= 0.8)) else "PASS")

只要每個字符串都通過,也可以工作,但我不建議在一行中進行。


查看完整回答
反對 回復 2023-12-09
  • 3 回答
  • 0 關注
  • 174 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號