一、数据缺失值处理
处理方法:
1、删除
2、补全: 常用补全方法有(1)用基本统计量填充(最大值、最小值、均值、中位数、众数)
(2) 用表内临近值填充
(3)用分类临界值、基本统计量填充
(4)用回归模型填充,将缺失字段作为目标变量进行预测
(5)多重插补
3、真值转换法:该方法将缺失值也作为数据分布规律的一部分,将缺失值和实际值都作为输入维度参与后续 数据处理和模型计算。
4、不处理:若后期的模型对缺失值有容忍度或有灵活的处理方法,则可不进行处理。常见的能够自动处理缺失值的模型包括:KNN、决策树、随机森林、神经网络、朴素贝叶斯、DBSCAN等。
#生成缺失数据
1 import numpy as np 2 import pandas as pd 3 df=pd.DataFrame(np.random.randn(6,3),columns=['var_1','var_2','var_3']) 4 df.ix[2,1:]=np.nan 5 df.ix[4:,0]=np.nan 6 print(df)
var_1 var_2 var_3
0 -0.861766 -0.485220 -1.377067
1 -0.897174 -1.214410 -1.922518
2 -0.058318 NaN NaN
3 1.101776 0.042510 0.333608
4 NaN -0.127705 -1.165975
5 NaN -1.027285 -0.005494
#查看缺失值
1 print(df[(df.isnull()).any(1)])
var_1 var_2 var_3
2 -0.058318 NaN NaN
4 NaN -0.127705 -1.165975
5 NaN -1.027285 -0.00549
#删除有缺失值的行
1 df2=df.dropna() 2 print(df2)
var_1 var_2 var_3
0 -0.861766 -0.48522 -1.377067
1 -0.897174 -1.21441 -1.922518
3 1.101776 0.04251 0.333608