資料預處理 資料清洗(1) 缺失值處理

2021-10-02 01:14:51 字數 1605 閱讀 4787

缺失值,異常值和重複值的處理

3.1.1缺失值處理

缺失值處理方式

填充缺失值相對直接刪除而言,用適當方式填充缺失值,形成完整的資料記錄是更加常用的缺失值處理方式。常用的填充方法如下:

不處理資料分析和建模應用中很多模型對於缺失值有容忍度或靈活的處理方法,因此在預處理階段可以不做處理。常見的能夠自動處理缺失值的模型包括:knn、決策樹和隨機森林、神經網路和樸素貝葉斯

缺失值處理套路

注意預設值的問題,需要跟開發人員溝通

3.1.2缺失值處理api

導包

import pandas as pd  # 匯入pandas庫

import numpy as np # 匯入numpy庫

from sklearn.impute import ******imputer # 匯入sklearn中******imputer庫

缺失值處理

#用到pandas的api

dataframe.isnull() #判斷是否有缺失值

dataframe.dropna() #刪除缺失值

dataframe.fillna() #填充缺失值

檢視是否包含缺失

nan_all = df.isnull()  # 獲得所有資料框中的n值
檢視哪些列有缺失

nan_col1 = df.isnull().any()  # 獲得含有na的列

nan_col2 = df.isnull().all() # 獲得全部為na的列

刪除缺失值

df2 = df.dropna()  # 直接丟棄含有na的行記錄
使用sklearn填充缺失值

nan_model = ******imputer(missing_values=np.nan, strategy='mean')  

# 建立替換規則:將值為nan的缺失值以均值做替換

nan_result = nan_model.fit_transform(df) # 應用模型規則

使用pandas填充缺失值

nan_result_pd1 = df.fillna(method='backfill')  # 用後面的值替換缺失值

nan_result_pd2 = df.fillna(method='bfill', limit=1) # 用後面的值替代缺失值,限制每列只能替代乙個缺失值

nan_result_pd3 = df.fillna(method='pad') # 用前面的值替換缺失值

nan_result_pd4 = df.fillna(0) # 用0替換缺失值

nan_result_pd5 = df.fillna() # 用不同值替換不同列的缺失值

nan_result_pd6 = df.fillna(df.mean()['col1':'col2']) # 用平均數代替,選擇各自列的均值替換缺失值

資料預處理 缺失值處理

資料中的缺失值是個非常棘手的問題,有很多文獻都致力於解決這個問題。資料缺失的含義是 假設有 n n 個樣本,每個樣本20個特徵。但在一些樣本中出於某種原因某個特徵無效,則就構不成乙個完整的樣本。對於這樣的問題,有些情況下是不能直接將其拋棄的,對其進行挽救就是缺失值處理 1 使用可用特徵的均值來填補缺...

資料預處理之缺失值處理

刪除法 刪除小部分樣本,在樣本量大時 刪除部分所佔比例小於5 時 可以使用 插補法 均值插補 分為定距型 插入均值 和非定距型 眾數或者中值 回歸插補 線性和非線性回歸 極大似然估計mle 正態分佈為例 極大似然原理的直觀想法我們用下面例子說明,在 權力的遊戲 中有個場景,老徒利死的時候,屍體放在穿...

pandas資料預處理 缺失值

缺失值的分類 按照資料缺失機制可分為 不可忽略的缺失 non ignorable missing nim 或非隨機缺失 not missing at random,nmar,or,missing not at random,mnar 如果不完全變數中資料的缺失既依賴於完全變數又依賴於不完全變數本身,...