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...