【Python數據科學手冊】Pandas——五、處理缺失值

五、處理缺失值

涉及的缺失值主要有三種形式: null、 NaN 或 NA。

1.選擇處理缺失值的方法

數據表或 DataFrame 中有很多識別缺失值的方法。一般情況下可以分爲兩種:一種方法是通過一個覆蓋全局的掩碼錶示缺失值,另一種方法是用一個標籤值(sentinel value)表示缺失值。

2.Pandas的缺失值

Pandas 最終選擇用標籤方法表示缺失值,包括兩種 Python 原有的缺失值:浮點數據類型的 NaN 值,以及 Python 的 None 對象。

1).None: Python對象類型的缺失值

它是一個 Python 單體對象,不能作爲任何 NumPy / Pandas 數組類型的缺失值,只能用於 ‘object’ 數組類型(即由 Python 對象構成的數組)
在這裏插入圖片描述
這種類型比其他原生類型數組要消耗更多的資源.
使用 Python 對象構成的數組就意味着如果你對一個包含 None 的數組進行累計操作,如sum() 或者 min(),那麼通常會出現類型錯誤

2).NaN: 數值類型的缺失值

缺失值的標籤是 NaN(全稱 Not a Number, 不是一個數字),是一種按照 IEEE 浮點數標準設計、在任何系統中都兼容的特殊浮點數
在這裏插入圖片描述
可以把 NaN 看作是一個數據類病毒——它會將與它接觸過的數據同化
在這裏插入圖片描述
累計操作的結果定義是合理的(即不會拋出異常),但是並非總是有效的
在這裏插入圖片描述
NumPy 也提供了一些特殊的累計函數,它們可以忽略缺失值的影響
在這裏插入圖片描述

3).Pandas中NaN與None的差異

Pandas 把它們看成是可以等價交換的,在適當的時候會將兩者進行替換
在這裏插入圖片描述
Pandas 會將沒有標籤值的數據類型自動轉換爲 NA。將整型數組的缺失值強制轉換爲浮點數,Pandas 還會自動將 None 轉換爲NaN。
在這裏插入圖片描述

  • Pandas對不同類型缺失值的轉換規則
類型 缺失值轉換規則 NA標籤值
floating 浮點型 無變化 np.nan
object 對象類型 無變化 None 或 np.nan
integer 整數類型 強制轉換爲 float64 np.nan
boolean 布爾類型 強制轉換爲 object None 或 np.nan

Pandas 中字符串類型的數據通常是用 object 類型存儲的

3.處理缺失值

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章