pandas:缺失值處理
- 前言
- 一、isnull()
- 二、notnull()
- 三、dropna()
- 四、fillna()
前言
當我們在處理資料時,總會遇到數值缺失的問題,pandas在處理缺失值的方面提供了很全面的方法,主要包括:isnull()——找出缺失值;notnull()——找出非缺失值;dropna()——剔除缺失值;fillna()——填充缺失值,具體使用方法請往下看,
提示:以下是本篇文章正文內容,下面案例可供參考
一、isnull()
isnull()用來找出缺失值的位置,回傳一個布爾型別的掩碼標記缺失值,下面是案例:
import pandas as pd
import numpy as np
data = pd.DataFrame({'name':['Verne Raymond',np.nan,'Patrick George','Saxon MacArthur'],'age':[18,np.nan,21,None]})
data
name age
0 Verne Raymond 18.0
1 NaN NaN
2 Patrick George 21.0
3 Saxon MacArthur NaN
這里我們可以看到不管我們創建DataFrame時控制用的是np.nan還是None,創建后都會變成NaN,
data.isnull()
name age
0 False False
1 True True
2 False False
3 False True
二、notnull()
notnull()與isnull()正好相反,是找出非空值并用布林值進行標記,下面是例子:
data.notnull()
name age
0 True True
1 False False
2 True True
3 True False
三、dropna()
dropna()就是字面意思,丟掉缺失值,
DataFrame.dropna(axis=0, how=‘any’, thresh=None, subset=None, inplace=False)
引數:
axis:默認為0,表示洗掉行還是列,也可以用“index”和“columns”表示
how:{‘any’, ‘all’}, 默認為 ‘any’;any表示只要該行(列)出現空值就洗掉整行(列),all表示整行(列)都出現空值才會洗掉整行(列)
thresh:表示洗掉非空值小于thresh個數時洗掉
subset:串列型別,表示哪些列里有空值才洗掉行或列
inplace:與其他函式的inplace一樣,表示是否覆寫原DataFrame
下面是例子:
data.dropna(axis=1,thresh=3)
name
0 Verne Raymond
1 NaN
2 Patrick George
3 Saxon MacArthur
data.dropna(axis=0,how='all')
name age
0 Verne Raymond 18.0
2 Patrick George 21.0
3 Saxon MacArthur NaN
data.dropna(subset = ['name'])
name age
0 Verne Raymond 18.0
2 Patrick George 21.0
3 Saxon MacArthur NaN
四、fillna()
fillna()的作用是填充缺失值
DataFrame.fillna(value=None, method=None, axis=None, inplace=False, limit=None, downcast=None)
引數:
- value:設定用于填充DataFrame的值
- method:默認為None;設定填充DataFrame的方法有:‘backfill’, ‘bfill’, - ‘pad’, ‘ffill’四種,其中‘backfill’和 ‘bfill’是用前面的值填充空缺值,‘pad’和 ‘ffill’是用后面的值填充空缺值
- axis:填充缺失值所沿的軸,與上文的axis設定方法一樣
- inplace:是否替換原DataFrame,與上文的設定方法一樣
- limit:設定被替換值的數量限制
- downcast:表示向下兼容轉換型別,不常用
下面是例子:
data.fillna(0)
name age
0 Verne Raymond 18.0
1 0 0.0
2 Patrick George 21.0
3 Saxon MacArthur 0.0
data.fillna(method='ffill')
name age
0 Verne Raymond 18.0
1 Verne Raymond 18.0
2 Patrick George 21.0
3 Saxon MacArthur 21.0
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/242395.html
標籤:python
