【數(shù)據(jù)處理】【數(shù)據(jù)清洗】【7.1 處理缺失值】 2021-06-20

7.1 處理缺失值

Pandas中使用浮點值NaN(Nat a Number)來標識缺失值。numpy的np.nan,和Python內(nèi)建的None值并不是一回事,但使用二者為DataFrame對象賦值時,都會被pandas視作缺失值。


image.png

7.1.1 過濾缺失值

Series上使用dropna方法,會返回Series中所有非空數(shù)據(jù)及其索引值。處理DataFrame對象時dropna默認會刪除所有包含缺失值的行。以下是處理DataFrame時的常見應(yīng)用情景。

  1. 刪除的對象只限于行中所有觀測值均缺失的行時,傳入 how='all' 。
data.dropna(how='all')
  1. 針對列進行過濾時,轉(zhuǎn)入?yún)?shù) axis=1 。
  2. 如果想保留包含一定數(shù)量觀測值的行,使用thresh參數(shù)。下例為,如果一行內(nèi)有兩個以上的觀測值,則保留此行。
data.dropna(thresh=2)
  1. 如果想用DataFrame某列中的缺失值來過濾行的話,使用subset參數(shù)(參數(shù)值為列表類型)。
data.dropna(subset=[0]) 

7.1.2 補全缺失值

除了過濾,有時需要用fillna方法補全缺失值??梢允褂贸?shù),字典作為填充值,或采取插值的方法。

  1. 填充常數(shù)0
data.fillna(0) 
  1. 第2列填充常數(shù)0, 第3列填充常數(shù)0.5
data.fillna({1:0, 2:0.5})
  1. 自動插入前一列的值(向前填充),并且最多填充2行

data.fillna(method='ffill', limit=2)
  1. 填充后不返回新對象,修改已存在對象
data.fillna(0,inplace=True) 
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容