数据清洗以及特征处理
前面一章的内容大家可以感觉到我们主要是对基础知识做一个梳理,让大家了解数据分析的一些操
作,主要做了数据的各个角度的观察。那么在这里,我们主要是做数据分析的流程性学习,主要是包括了数据清
洗以及数据的特征处理,数据重构以及数据可视化。这些内容是为数据分析最后的建模和模型评价做一个铺垫。
一、开始之前,导入包
#加载所需要的库
import numpy as np
import pandas as pd
#加载数据train.csv
df = pd.read_csv('train.csv')
df.head()
二、数据清洗简述
我们拿到的数据通常是不干净的,所谓的不干净,就是数据中有缺失值,有一些异常点等,需要经过一定的处理才能继续做后面的分析或建模,所以拿到数据的第一步是进行数据清洗,本章我们将学习缺失值、重复值、字符串和数据转换等操作,将数据清洗成可以分析或建模的样子。
三、缺失值观察与处理
我们拿到的数据经常会有很多缺失值,比如我们可以看到Cabin列存在NaN,那其他列还有没有缺失值,这些缺失值要怎么处理呢
任务一:缺失值观察
(1) 请查看每个特征缺失值个数
(2) 请查看Age, Cabin, Embarked列的数据
df.info()
df.isnull().sum()
#判断是空的个数
df[['Age', 'Cabin', 'Embarked']].head()
任务二:对缺失值进行处理
(1) 处理缺失值一般有几种思路
- 删除缺失值所在行,适用于小比例缺失情况
- 删除缺失比例大的列,适用于某变量集中缺失的情况
- 不处理
df.dropna().head()
#dropna默认删除包含缺失值的行、穿参 how='all', 删除所有值均为NAN的行,若想删除列传入参数 axis= 1
#仅仅传入thresh = n ,意味着这一行除去NA值,剩余数值的数量大于等于n
(2) 请尝试对Age列的数据的缺失值进行处理
- 利用fillna 进行填充
df.fillna(0).head()
# fillna 函数将缺失值补充为0,