第二章:数据清洗及特征处理
我们拿到的数据通常是不干净的,所谓的不干净,就是数据中有缺失值,有一些异常点等,需要经过一定的处理才能继续做后面的分析或建模,所以拿到数据的第一步是进行数据清洗,本章我们将学习缺失值、重复值、字符串和数据转换等操作,将数据清洗成可以分析或建模的亚子
2.1 缺失值观察与处理
我们拿到的数据经常会有很多缺失值,比如我们可以看到Cabin列存在NaN,那其他列还有没有缺失值,这些缺失值要怎么处理呢
2.1.1 任务一:缺失值观察
请查看每个特征缺失值个数
方法一:
Train_data.info()
我们可以看到每列应该有891个数据,可以看到Age,Cabin,Embarked列存在缺失值
方法二:
Train_data.isnull().sum() #可以统计出每列缺失的值
2.1.2 任务二:对缺失值进行处理
(1)处理缺失值一般有几种思路
–删除,补全
(2) 请尝试对Age列的数据的缺失值进行处理
(3) 请尝试使用不同的方法直接对整张表的缺失值进行处理
法一:(不推荐)
Train_data[Train_data['Age']==np.NAN]=0 # 将缺失值置为0
Train_data.head(5)
法二:使用dropna和fillna(常用)
dropna函数参数:
(1)axis参数:默认情况为行,axis=1表示列
(2)how参数–可取值any或all,表示全为缺失去除和存在缺失去除
fillna函数参数:
(1)value:填充的值
(2)method:填充方法,如果没有参数,默认是ffill (向前填充)。 method=bfill 表示向后填充
(3)axis:需要填充的轴,默认axis=0,竖直方向填充
(4)inplace:修改被调用的对象
2.2 重复值观察与处理
2.2.1 任务一:请查看数据中的重复值(使用duplicated)
Train_data[Train_data.duplicated()]
2.2.2 任务二:对重复值进行处理
使用drop_duplicates()