文章目录
1.提出问题
1912年4月15日,一艘号称“永不沉没”的泰坦尼克号邮轮,在首航期间便撞上冰山后沉没。
船上一共2224名乘客和机组人员,但其中只有772人存活下来,生还率只有32%。 这一骇人听闻的悲剧震撼了国际社会,引起社会各界对船舶安全条例的重视。
泰坦尼克号的航行路线:从4月10日12点在英国 南安普顿(Southampton) 出发,晚上7点(19点)船停在法国瑟堡市(Cherbourg),晚上9点(21点)离开法国瑟保市。第2天(1912年4月11日)中午12点半到达爱尔兰昆士敦(Queenstown),下午2点(14点)离开爱尔兰驶向航行的目的,也就是美国的纽约。
航行到第5天(1912年4月14日)晚上11点40不幸与冰山相撞,直到第6天早上(1912年4月15日)2点20全船沉没。
导致这么多人遇难的原因之一就是乘客和船员没有足够的救生艇,虽然在上船前,女主角露丝就像船长提出救生艇不够的问题,但没有得到足够的重视。
虽然能够幸存下来的人存在部分运气因素,但一些人(如:妇女、儿童和上层阶级)比其他人更有可能生存的机会。
所以我们研究的问题是:什么样的人在泰坦尼克号中更容易存活?
2.理解数据
理解数据包括:
2.1 采集数据:根据研究问题,采集数据
2.2 导入数据:将数据导入到Python中的数据结构中。
2.3 查看数据集信息
2.1采集数据
从Kaggle中下载项目数据
2.2导入数据
#忽略警告提示
import warnings
warnings.filterwarnings('ignore')
#导入数据
import numpy as np
import pandas as pd
#导入数据
#导入训练数据集
train = pd.read_csv("./Titanic_train.csv")
#导入测试数据集
test = pd.read_csv("./Titanic_test.csv")
print('训练数据集:',train.shape,'测试训练集:',test.shape)
训练数据集: (891, 12) 测试训练集: (418, 11)
rowNum_train = train.shape[0]
rowNum_test = test.shape[0]
print('kaggle训练数据集行数:',rowNum_train,
',kaggle测试数据集行数:',rowNum_test)
kaggle训练数据集行数: 891 ,kaggle测试数据集行数: 418
#对训练数据集和测试数据集进行合并
full = train.append( test , ignore_index = True)
#对训练数据集和测试数据集进行合并
full = train.append( test , ignore_index = True)
print('合并数据集:',full.shape)
合并数据集: (1309, 12)
2.3查看数据集信息
#查看数据集
full.head()
#获取数据类型的描述统计信息
full.describe()
#查看每一列的数据总数,统计缺失数据
full.info()
数据共有1309行,其中:
数字类型中年龄(Age)、船舱号(Cabin)有缺失数据:
- 年龄(Age)缺失263条数据
- 船票价格(Fare)缺失1条数据
字符串类型中登船港口(Embarked)、船舱号(Cabin)有缺失数据:
- 登船港口(Embarked)缺失2条数据
- 船舱号(Cabin)缺失1014条数据
3.数据清洗
3.1数据预处理
#对缺失值进行处理
#对数据类型,使用平均数填充缺失值
print('处理前:')
full.info()
#年龄(Age)
full['Age'] = full['Age'].fillna(full['Age'].mean())
#船票价格(Fare)
full['Fare'] = full['Fare'].fillna(full['Age'].mean())
print('处理后:')
full.info()
#检查数据处理是否正常
full.head()