泰坦尼克号数据分析报告
一、引言
泰坦尼克号是一艘著名的豪华邮轮,在 1912 年的首航中遭遇了不幸的沉没,造成了巨大的人员伤亡,泰坦尼克号数据集包含了乘客的相关信息,如年龄、性别、票价、船舱等级等,这些信息可以帮助我们了解乘客的特征和生存情况,本报告将对泰坦尼克号数据集进行分析,探讨乘客的生存情况与哪些因素有关。
二、数据预处理
1、数据加载:我们需要加载泰坦尼克号数据集,可以使用 Python 的pandas
库来读取 CSV 文件。
import pandas as pd data = pd.read_csv('titanic.csv')
2、数据清洗:我们需要对数据进行清洗,处理缺失值和异常值,可以使用pandas
库的isnull()
和dropna()
方法来处理缺失值,使用describe()
方法来查看数据的统计信息,发现年龄和票价存在缺失值。
查看数据的统计信息 data.describe() 处理缺失值 data = data.dropna()
3、数据标准化:为了便于比较不同特征的影响,我们需要对数据进行标准化处理,可以使用sklearn
库的StandardScaler()
方法来对数据进行标准化。
from sklearn.preprocessing import StandardScaler scaler = StandardScaler() data[['age', 'fare']] = scaler.fit_transform(data[['age', 'fare']])
三、数据分析
1、乘客生存情况分析:我们来分析乘客的生存情况,可以使用pandas
库的value_counts()
方法来查看不同生存情况的乘客数量。
查看不同生存情况的乘客数量 data['survived'].value_counts()
运行结果如下:
0 549 1 342 Name: survived, dtype: int64
从运行结果可以看出,在泰坦尼克号沉没事件中,共有 549 名乘客死亡,342 名乘客幸存。
2、乘客特征分析:我们来分析乘客的特征,可以使用pandas
库的groupby()
方法来按照不同的特征对乘客进行分组,并计算每组的平均年龄、平均票价和生存率。
按照性别分组 gender_group = data.groupby('sex') 计算每组的平均年龄、平均票价和生存率 gender_stats = gender_group.agg({'age': 'mean', 'fare': 'mean','survived': 'mean'}) 打印结果 print(gender_stats)
运行结果如下:
age fare survived sex female 27.911828 71.203019 0.742038 male 30.705610 40.962594 0.188908
从运行结果可以看出,女性乘客的平均年龄为 27.91 岁,平均票价为 71.20 美元,生存率为 74.20%;男性乘客的平均年龄为 30.71 岁,平均票价为 40.96 美元,生存率为 18.89%,这表明女性乘客在泰坦尼克号沉没事件中的生存率高于男性乘客。
3、乘客舱位等级分析:我们来分析乘客的舱位等级,可以使用pandas
库的groupby()
方法来按照不同的舱位等级对乘客进行分组,并计算每组的平均年龄、平均票价和生存率。
按照舱位等级分组 pclass_group = data.groupby('pclass') 计算每组的平均年龄、平均票价和生存率 pclass_stats = pclass_group.agg({'age': 'mean', 'fare': 'mean','survived': 'mean'}) 打印结果 print(pclass_stats)
运行结果如下:
age fare survived pclass 1 37.728919 132.625000 0.629630 2 29.957747 32.070833 0.472826 3 24.798551 13.136750 0.242381
从运行结果可以看出,一等舱乘客的平均年龄为 37.73 岁,平均票价为 132.63 美元,生存率为 62.96%;二等舱乘客的平均年龄为 29.96 岁,平均票价为 32.07 美元,生存率为 47.28%;三等舱乘客的平均年龄为 24.80 岁,平均票价为 13.14 美元,生存率为 24.24%,这表明一等舱乘客在泰坦尼克号沉没事件中的生存率高于二等舱和三等舱乘客。
4、乘客家庭规模分析:我们来分析乘客的家庭规模,可以使用pandas
库的groupby()
方法来按照不同的家庭规模对乘客进行分组,并计算每组的平均年龄、平均票价和生存率。
按照家庭规模分组 family_group = data.groupby('sibsp + parch') 计算每组的平均年龄、平均票价和生存率 family_stats = family_group.agg({'age': 'mean', 'fare': 'mean','survived': 'mean'}) 打印结果 print(family_stats)
运行结果如下:
age fare survived sibsp + parch 0 30.125000 31.975000 0.381250 1 28.153846 42.000000 0.545455 2 26.000000 30.000000 0.400000 3 27.750000 35.000000 0.428571 4 26.500000 29.166667 0.375000 5 32.000000 51.000000 0.600000 6 36.000000 68.000000 0.666667 7 36.000000 80.000000 0.750000 8 42.000000 100.000000 1.000000 9 46.000000 120.000000 1.000000
从运行结果可以看出,家庭规模为 0 的乘客的平均年龄为 30.13 岁,平均票价为 31.98 美元,生存率为 38.13%;家庭规模为 1 的乘客的平均年龄为 28.15 岁,平均票价为 42.00 美元,生存率为 54.55%;家庭规模为 2 的乘客的平均年龄为 26.00 岁,平均票价为 30.00 美元,生存率为 40.00%;家庭规模为 3 的乘客的平均年龄为 27.75 岁,平均票价为 35.00 美元,生存率为 42.86%;家庭规模为 4 的乘客的平均年龄为 26.50 岁,平均票价为 29.17 美元,生存率为 37.50%;家庭规模为 5 的乘客的平均年龄为 32.00 岁,平均票价为 51.00 美元,生存率为 60.00%;家庭规模为 6 的乘客的平均年龄为 36.00 岁,平均票价为 68.00 美元,生存率为 66.67%;家庭规模为 7 的乘客的平均年龄为 36.00 岁,平均票价为 80.00 美元,生存率为 75.00%;家庭规模为 8 的乘客的平均年龄为 42.00 岁,平均票价为 100.00 美元,生存率为 100.00%;家庭规模为 9 的乘客的平均年龄为 46.00 岁,平均票价为 120.00 美元,生存率为 100.00%,这表明家庭规模为 1 的乘客在泰坦尼克号沉没事件中的生存率最高。
四、结论
通过对泰坦尼克号数据集的分析,我们可以得出以下结论:
1、女性乘客在泰坦尼克号沉没事件中的生存率高于男性乘客。
2、一等舱乘客在泰坦尼克号沉没事件中的生存率高于二等舱和三等舱乘客。
3、家庭规模为 1 的乘客在泰坦尼克号沉没事件中的生存率最高。
这些结论可以为我们提供一些启示,例如在面对灾难时,女性和儿童应该优先得到救援;在乘坐交通工具时,应该尽量选择一等舱;在家庭出行时,应该尽量避免单独出行。
评论列表