還原填充錯誤的缺失資料
阿新 • 來源:網路 • 發佈:2021-05-21
還原填充錯誤的缺失資料
手動方法 map() 函式對映
map(func)
import pandas as pd
import numpy as np
## -------
df = pd.DataFrame()
df['身高'] = [170, -1, 190, 150, 166]
df['體重'] = [50, 65, 70, 60, -1]
df.index = ['a', 'b', 'c', 'd', 'e'] ## 代表人名
## ----
結果:

很明顯人的身高不可能是 -1 , 體重也不可能是 -1 , 這些資料屬於有違反常識的資料值。 因此這裡是誤填充操作(或者可以理解成:異常值)
那麼我們應該如何發現它們,並將其替換成缺失值形式呢?
df['身高'] = df['身高'].map(lambda x : x if x != -1 else None)
df['體重'] = df['體重'].map(lambda x : x if x != -1 else None)
df
結果:

自動方法 for迴圈 + replace() 替換
如果我們的資料列數較小的時候,我們可以進行手動填充,但是有許多資料列都存在缺失,那就需要進行自動填充以提高效率
columns = df[df == -1].columns.tolist()
for col in columns:
df[col].replace([-1], [np.nan], inplace=True)
df
注意: 這裡使用的 np.nan 和之前使用的 None 均可以代表缺失資料,None (是 python中的 ) , np.nan(是numpy中的)

說明
以上這些心得是在特徵工程中體會得到的,如果資料存在缺失,那麼對缺失值的操作不是很方便,不妨先將缺失值用一些獨特的值來填充,然後進行特徵構建組合,這樣的話可能會破壞原始的資料結構,但是卻能開啟資料各個特徵之間的關係,可以結合具體業務展開。
使用方法:
1. 缺失資料檢查
2. 缺失資料用獨特的值填充 (一般使用-1, -9999,等)
3. 進行特徵構建
4. 判斷構架之後特徵的相關性
5. 把資料還原會原始狀態(本blog的內容)
以上方法結合具體的情況使用。
