pandas中對nan空值的判斷


pandas基於numpy,所以其中的空值nannumpy.nan是等價的。numpy中的nan並不是空對象,其實際上是numpy.float64對象,所以我們不能誤認為其是空對象,從而用bool(np.nan)去判斷是否為空值,這是不對的。

  • 可以判斷pandas中單個空值對象的方式:

    • 利用pd.isnull(),pd.isna();
    • 利用np.isnan();
    • 利用is表達式;
    • 利用in表達式。
      image
  • 不可以用來判斷pandas單個空值對象的方式:

    • 不可直接用==表達式判斷;
    • 不可直接用bool表達式判斷;
    • 不可直接用if語句判斷。
      image
  • 對於同時多個空值對象的判斷和處理:

    • 可以用Series對象和DataFrame對象的any()或all()方法;
    • 可以用numpy的any()或all()方法
    • 不可以直接用python的內置函數any()和all()方法
    • 可以用Series或DataFrame對象的dropna()方法剔除空值;
    • 可以用Series或DataFrame對象的fillna()方法填充空值。

總結:

  • numpy.nan是一個numpy.float64的非空對象,所以不能直接用bool表達式去判斷,故一切依賴於布爾表達式的判斷方式都不行,比如if語句。
  • 對於pandas中空值的判斷,我們只能通過pandas或者numpy的函數和is表達式去判斷,不能用python的內置函數any或all判斷。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM