import pandas as pd from sklearn.impute import SimpleImputer # 專門補缺的類 from sklearn.preprocessing import LabelEncoder # 標籤專用,能夠將分類轉換爲分類數值 data = pd.read_csv('缺失預處理數據22222.csv', index_col=0) # 把第0列作爲索引 ########################## 缺失預處理數據22222.csv 已經上傳到我的資源,可以直接下載 # print(data.head()) # print(data.info()) #看一下數據狀況 發現年齡和艙門有缺失 # todo:::::::::::::sklearn.impute.SimpleImputer (missing_values=nan, strategy=’mean’, fill_value=None, verbose=0,copy=True) # todo: 參數 #### missing_values 告訴SimpleImputer,數據中的缺失值長什麼樣,默認空值np.nan #### strategy 我們填補缺失值的策略,默認均值。 #### 輸入“mean”使用均值填補(僅對數值型特徵可用) #### 輸入“median"用中值填補(僅對數值型特徵可用) #### 輸入"most_frequent”用衆數填補(對數值型和字符型特徵都可用) #### 輸入“constant"表示請參考參數“fill_value"中的值(對數值型和字符型特徵都可用) #### fill_value 當參數startegy爲”constant"的時候可用,可輸入字符串或數字表示要填充的值,常用0 #### copy 默認爲True,將創建特徵矩陣的副本,反之則會將缺失值填補到原本的特徵矩陣中去 # todo: 填補年齡 # Age = data.loc[:, "Age"].values.reshape(-1, 1) # sklearn當中特徵矩陣必須是二維 # imp_mean = SimpleImputer() # 實例化,默認均值填補 # imp_median = SimpleImputer(strategy="median") # 用中位數填補 # imp_0 = SimpleImputer(strategy="constant", fill_value=0) # 用0填補 # # imp_mean = imp_mean.fit_transform(Age) # fit_transform一步完成調取結果 # imp_median = imp_median.fit_transform(Age) # fit_transform一步完成調取結果 # imp_0 = imp_0.fit_transform(Age) # fit_transform一步完成調取結果 # print(imp_mean[:20]) # print(imp_median[:20]) # print(imp_0[:20]) # todo::在這裏我們使用中位數填補Age # data.loc[:, "Age"] = imp_median # print(data.info()) # todo: 使用衆數填補Embarked # Embarked = data.loc[:, "Embarked"].values.reshape(-1, 1) # imp_mode = SimpleImputer(strategy="most_frequent") # data.loc[:, "Embarked"] = imp_mode.fit_transform(Embarked) # print(data.info()) # todo::::BONUS:用Pandas和Numpy進行填補其實更加簡單 import pandas as pd # data.head() # data.loc[:, "Age"] = data.loc[:, "Age"].fillna(data.loc[:, "Age"].median()) # # .fillna 在DataFrame裏面直接進行填補 # data.dropna(axis=0, inplace=True) # # .dropna(axis=0)刪除所有有缺失值的行,.dropna(axis=1)刪除所有有缺失值的列 # # 參數inplace,爲True表示在原數據集上進行修改,爲False表示生成一個複製對象,不修改原數據,默認False # print(data.info())
day 6 缺失值處理
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.