缺失值處理

2021-08-15 18:19:29 字數 1611 閱讀 2257

pandas使用nan(not a number)表示浮點和非浮點陣列中的缺失資料,python內建的none值也會被當做na處理,pandas物件上的所有描述統計都排除了缺失資料。

na處理方法 方法

說明dropna

根據各標籤的值是否存在缺失資料對軸標籤進行過濾,可通過閾值調節對缺失值的容忍度

fillna

用指定值或插值方法(如ffill或bfill)填充缺失資料

isnull

返回布林物件,表示那些值是缺失值/na,該物件型別與元型別一樣

notnull

isnull的否定式

濾除缺失值

對於乙個series,dropna,返回乙個僅含非空資料和索引值的series

from numpy import nan as na
data = series([1,na,3.5,na,7])

data.dropna()

out[31]:

0 1.0

2 3.5

4 7.0

dtype: float64

當然,也可以通過布林型索引達到效果

data[data.notnull()]

out[32]:

0 1.0

2 3.5

4 7.0

dtype: float64

對於dataframe物件,你可能希望丟棄全na或含有na的行或列,dropna預設丟棄任何含有缺失值的行。

data = dataframe([[1,2,3],[1,na,na],[na,na,na],[na,6,3]])

cleaned1=data.dropna() #丟棄含有na的行

cleaned2=data.dropna(how='all') #丟棄全為na的行

cleaned3=data.dropna(how='all') #丟棄全為na的列

cleaned3=data.dropna(thresh=3) #保留三個以上非na的行

填充缺失資料

大多數情況下,fillna方法是最主要的函式

df.fillna(0) #對所有缺失值填充常數0

df.fillna()#通過字典呼叫fillna,可以實現對不同列填充不同值

fillna預設返回新物件,但也可以就地修改

df.fillna(0,inplace=true)

fillna函式 引數

說明value

用於填充缺失值的標量值或者字典

method

插值方式,預設為ffill(用前乙個數填充缺失值),還有乙個bfill指用後乙個數填充缺失值

axis

待填充的軸,預設axis=0

inplace

修改呼叫者物件而不產生副本

limit

對於向前和向後填充,允許連續填充的最大值

其實只要稍微動動腦子,你就可以利用fillna實現許多別的功能,比如傳入series的平均值或中位數

data.fillna(data.mean)

缺失值處理

之前寫過一篇文章缺失值視覺化處理 missingno 主要介紹了缺失值的檢視,今天聊一下,出現了缺失值後我們要做的後續工作,就是缺失值的處理。首先附上幾個 data資料集 data.isnull 缺失值判斷 是缺失值返回true,否則範圍false data.isnull sum 缺失值計算 返回每...

缺失值處理

資料清洗主要是刪除原始資料集中的無關資料 重複資料,平滑雜訊資料,去除與資料探勘主題無關的資料,處理缺失值 異常值等 缺失主要為完全隨機缺失,隨機缺失和非隨機缺失 資料的缺失是隨機的,資料的缺失不依賴於任何不完全變數或完全變數。資料的缺失不是完全隨機的,即該類資料的缺失依賴於其他完全變數。資料的缺失...

缺失值處理

在日常的處理資料的時候,會遇到資料中某些地方沒有值,也就是缺失了。對於這種情況,一半有兩種情況 刪除和插補。一般步建議刪除。引數介紹 missing value 表示缺失值是什麼 strategy 表示填補的策略,是用均值還是中值等 axis表示按照行還是列填補。注意 資料中的人缺失值必須為np.n...