Titanic数据分析流程

1.提出问题:符合哪些特征的人在Titanic遇难时获救的可能性更高

2.理解数据
2.1 导入数据

import numpy as np
import pandas as pd

train = pd.read_csv('data/Train.csv')
test = pd.read_csv('data/Test.csv')
print('训练数据集:',train.shape)
print('测试训练集:',test.shape)

训练数据集: (891, 12)
测试训练集: (418, 11)


2.2 合并数据,进行清洗

full = train.append(test,ignore_index=Ture)
print ('合并后的数据集:',full.shape)

合并后的数据集: (1309, 12)


2.3 查看数据集信息

full.info()

在这里插入图片描述
我们发现数据总共有1309行。
其中数据类型列:年龄(Age)、船舱号(Cabin)里面有缺失数据:
1)年龄(Age)里面数据总数是1046条,缺失了1309-1046=263,缺失率263/1309=20%
2)船票价格(Fare)里面数据总数是1308条,缺失了1条数据
字符串列:
1)登船港口(Embarked)里面数据总数是1307,只缺失了2条数据,缺失比较少
2)船舱号(Cabin)里面数据总数是295,缺失了1309-295=1014,缺失率=1014/1309=77.5%,缺失比较大


3.数据清洗
3.1 数据预处理
缺失值处理:
在机器学习算法中,许多训练模型算法不能有空值
常用的补全缺失值方法有:
(1)数值型数据,可以使用平均数,众数进行补全
(2)如果是分类数据,用最常见的类别取代
(3)若处理的数值比较重要,则用模型预测缺失值补全

处理数值型缺失值:

print('处理前:')
full.info()
#年龄(Age)
full['Age']=full['Age'].fillna( full['Age'].mean() )
#船票价格(Fare)
full['Fare'] = full['Fare'].fillna( full['Fare'].mean() )
print('处理红后:')
full.info()

在这里插入图片描述

#检查数据处理是否正常
full.head()

处理字符型缺失值:
字符串列:
(1) 登船港口(Embarked)里面数据总数是1307,只缺失了2条数据,缺失比较少
(2) 船舱号(Cabin)里面数据总数是295,缺失了1309-295=1014,缺失率=1014/1309=77.5%,缺失比较大
登船港口(Embarked):
出发地点:S=英国南安普顿Southampton
途径地点1:C=法国 瑟堡市Cherbourg
途径地点2:Q=爱尔兰 昆士敦Queenstown

查看数据样式,进行补全:

full['Embarked'].value_counts()

对’Embarked’特征,其中’S’是比例最大的值,按照S进行填充

full['Embarked'] = full['Embarked'].fillna( 'S' )

对’Cabin’特征,缺失值比较多,将缺失值用特征‘U’代替

full['Cabin'] = full['Cabin'].fillna( 'U' )

检查数据是否正常

full.head()

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值