目录
#2.3.3 任务三(附加):从纯文本Name特征里提取出Titles的特征(所谓的Titles就是Mr,Miss,Mrs等)
主要是做数据分析的流程性学习,主要是包括了数据清洗以及数据的特征处理,数据重构以及数据可视化。这些内容是为数据分析最后的建模和模型评价做一个铺垫。
开始之前,导入numpy、pandas包和数据
#加载所需的库
import numpy as np
import pandas as pd
df=pd.read_csv(r'C:\Users\maxqu\Desktop\动手学数据分析\hands-on-data-analysis-master\第一单元项目集合/train.csv')#不加r会引起转义的报错,在路径前面加r,即保持字符原始值的意思。也可转换为双斜杠\\或正斜杠//
df.head()
数据清洗简述
我们拿到的数据通常是不干净的,所谓的不干净,就是数据中有缺失值,有一些异常点等,需要经过一定的处理才能继续做后面的分析或建模,所以拿到数据的第一步是进行数据清洗,本章我们将学习缺失值、重复值、字符串和数据转换等操作,将数据清洗成可以分析或建模的样子。
2.1 缺失值观察与处理
我们拿到的数据经常会有很多缺失值,比如我们可以看到Cabin列存在NaN,那其他列还有没有缺失值,这些缺失值要怎么处理呢
#2.1.1 任务一:缺失值观察
(1) 请查看每个特征缺失值个数
(2) 请查看Age, Cabin, Embarked列的数据 以上方式都有多种方式,所以建议大家学习的时候多多益善
#查看是否存在缺失值方法一
df.info()
#查看是否有缺失值方法二
df.isnull().sum()#isnull方法返回含null值的个数,sum方法进行求和
可以看到Age列、Cabin和Embarked列存在空值
df[['Age','Cabin','Embarked']].head(3)
#加入双[]是因为本身df文件就是个二维table,然后调用table中的列依然是一个子table
#2.1.2 任务二:对缺失值进行处理
(1)处理缺失值一般有几种思路:np.nan方法、None、isnull方法
(2) 请尝试对Age列的数据的缺失值进行处理
(3) 请尝试使用不同的方法直接对整张表的缺失值进行处理
#缺失值处理方法一
df[df['Age']==None]=0#age这一列中为None值直接赋值为0
df.head(3)
#缺失值处理方法二
df[df['Age'].isnul