缺失值處理 缺失值填充方法總結

2021-10-09 22:34:38 字數 2618 閱讀 4615

我們在進行模型訓練時,不可避免的會遇到某些特徵出現空值的情況,下面整理了幾種填充空值的方法

對於特徵值缺失的一種常見的方法就是可以用固定值來填充,例如0,9999, -9999, 例如下面對灰度分這個特徵缺失值全部填充為-99

data[

'灰度分'

]= data[

'灰度分'

].fillna(

'-99'

)

對於數值型的特徵,其缺失值也可以用未缺失資料的均值填充,下面對灰度分這個特徵缺失值進行均值填充

data[

'灰度分'

]= data[

'灰度分'

].fillna(data[

'灰度分'

].mean())

)

與均值類似,可以用未缺失資料的眾數來填充缺失值

data[

'灰度分'

]= data[

'灰度分'

].fillna(data[

'灰度分'

].mode())

)

用前乙個資料進行填充

data[

'灰度分'

]= data[

'灰度分'

].fillna(method=

'pad'

)

用後乙個資料進行填充

data[

'灰度分'

]= data[

'灰度分'

].fillna(method=

'bfill'

)

data[

'灰度分'

]= data[

'灰度分'

].interpolate(

)

from fancyimpute import biscaler, knn, nuclearnormminimization, softimpute

dataset = knn(k=3)

.complete(dataset)

from sklearn.ensemble import randomforestregressor

zero_columns_2 =

['機構查詢數量'

,'直接聯絡人數量'

,'直接聯絡人在黑名單數量'

,'間接聯絡人在黑名單數量'

,'引起黑名單的直接聯絡人數量'

,'引起黑名單的直接聯絡人佔比'

]#將出現空值的除了**的列全部取出來,不用於訓練

dataset_list2 =

[x for x in dataset if x not

in zero_columns_2]

dataset_2 = dataset[dataset_list2]

# 取出灰度分不為空的全部樣本進行訓練

know = dataset_2[dataset_2[

'灰度分'

].notnull()]

print

(know.shape)

#26417, 54

# 取出灰度分為空的樣本用於填充空值

unknow = dataset_2[dataset_2[

'灰度分'

].isnull()]

print

(unknow.shape)

#2078, 54

y =[

'灰度分'

]x =[1

]know_x2 = know.copy(

)know_y2 = know.copy(

)print

(know_y2.shape)

#know_x2.drop(know_x2.columns[x]

, axis=

1, inplace=

true

)print

(know_y2.shape)

print

(know_x2.shape)

#know_y2 = know[y]

# randomforestregressor

rfr = randomforestregressor(random_state=

666, n_estimators=

2000

, n_jobs=-1

)rfr.fit(know_x2, know_y2)

# 填充為空的樣本

unknow_x2 = unknow.copy(

)unknow_x2.drop(unknow_x2.columns[x]

, axis=

1, inplace=

true

)print

(unknow_x2.shape)

#(2078, 53)

unknow_y2 = rfr.predict(unknow_x2)

unknow_y2 = pd.dataframe(unknow_y2, columns=

['灰度分'

])

python缺失值填充

對於特徵值缺失的一種常見的方法就是可以用固定值來填充。data 分數 data 分數 fillna 1 對於數值型的特徵,其缺失值也可以用未缺失資料的均值填充。data 分數 data 分數 fillna data 分數 mean 與均值類似,可以用未缺失資料的眾數來填充缺失值。data 分數 da...

pandas 填充缺失值

當資料中存在nan缺失值時,我們可以用其他數值替代nan,主要用到了dataframe.fillna 方法,下面我們來看看具體的用法 1.先來建立乙個帶有缺失值的dataframe 2.使用0替代缺失值 當然你可以用任意乙個數字代替nan df.fillna 0 3.用乙個字串代替缺失值 df.fi...

python DataFrame缺失值填充2

在做具體的分析工作的時候,訓練集中往往既存在分類變數又存在連續變數,且因各種各樣的原因,資料中存在大量的缺失,給後期的建模工作帶來麻煩,現在把自己打磨好的缺失值補充函式總結在此,為後續的使用提供方便。用均值填充其連續型的缺失值,用眾數填充分類變數的缺失值 defdatadealnan df data...