缺失值處理

2021-08-28 06:15:25 字數 2198 閱讀 8382

之前寫過一篇文章缺失值視覺化處理–missingno

主要介紹了缺失值的檢視,今天聊一下,出現了缺失值後我們要做的後續工作,就是缺失值的處理。

首先附上幾個**

data資料集

data.isnull()#缺失值判斷:是缺失值返回true,否則範圍false

data.isnull().sum()#缺失值計算:返回每列包含的缺失值的個數

data.dropna()#缺失值刪除:直接刪除含有缺失值的行

data.dropna(axis = 1)#缺失值刪除列:直接刪除含有缺失值的列

data.dropna(how = 'all')#缺失值刪除行:只刪除全是缺失值的行

data.dropna(thresh = n)#缺失值刪除判斷:保留至少有n個缺失值的行

data.dropna(subset = ['c'])#缺失值刪除列:刪除含有缺失值的特定的列

主要針對數值型數值(numerical data)

fillna()函式

data.fillna(0):用0填充

data.fillna(method=『pad』):用前乙個數值填充

data.fillna(data.mean()):用該列均值填充

imputer

from sklearn.preprocessing import imputer

imr = imputer(missing_values='nan', strategy='mean', axis=0)#均值填充缺失值

imr = imr.fit(data)

imputed_data = imr.transform(data.values)

引數解釋:填補缺失值:sklearn.preprocessing.imputer(missing_values=』nan』, strategy=』mean』, axis=0, verbose=0, copy=true)

主要引數說明:

missing_values:缺失值,可以為整數或nan(缺失值numpy.nan用字串『nan』表示),預設為nan

strategy:替換策略,字串,預設用均值『mean』替換

①若為mean時,用特徵列的均值替換

②若為median時,用特徵列的中位數替換

③若為most_frequent時,用特徵列的眾數替換

axis:指定軸數,預設axis=0代表列,axis=1代表行

copy:設定為true代表不在原資料集上修改,設定為false時,就地修改,存在如下情況時,即使設定為false時,也不會就地修改

①x不是浮點值陣列

②x是稀疏且missing_values=0

③axis=0且x為crs矩陣

④axis=1且x為csc矩陣

statistics_屬性:axis設定為0時,每個特徵的填充值陣列,axis=1時,報沒有該屬性錯誤

舉例:

import numpy as np

訓練集資料中,

第一列有乙個缺失值,平均值為(1+7)/2=4

第二列無缺失值,平均值為(2+3+6)/3=3.6667

加入乙個測試集:

將訓練集的資料加入到測試集的缺失值中

缺失值處理

pandas使用nan not a number 表示浮點和非浮點陣列中的缺失資料,python內建的none值也會被當做na處理,pandas物件上的所有描述統計都排除了缺失資料。na處理方法 方法 說明dropna 根據各標籤的值是否存在缺失資料對軸標籤進行過濾,可通過閾值調節對缺失值的容忍度 ...

缺失值處理

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

缺失值處理

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