数据分析如何让泰坦尼克号从历史中重现?
2023-10-03 09:11:20
泰坦尼克号是一艘英国豪华邮轮,以其大小、奢华和先进的技术而闻名。然而,1912 年 4 月 15 日,泰坦尼克号在北大西洋撞上冰山后沉没,成为史上最严重的 maritime 灾难之一。这起悲剧造成 1,502 人死亡,也引发了关于乘客生存率的诸多讨论。
数据分析在这个案例中发挥着重要作用,因为它可以帮助我们更好地理解导致悲剧发生的原因,以及如何防止类似事件再次发生。下面,我们将使用 pandas 库来分析泰坦尼克号乘客的数据,看看哪些因素影响了他们的生存率。
数据准备
首先,我们需要准备数据。我们从 Kaggle 网站上下载了泰坦尼克号乘客的数据集,其中包含了 891 名乘客的信息,包括他们的姓名、年龄、性别、舱位等级、登船港口等。
import pandas as pd
# 导入泰坦尼克号乘客数据
data = pd.read_csv('titanic.csv')
# 查看数据
print(data.head())
输出结果:
PassengerId Survived Pclass ... Cabin Embarked
0 1 0 3 ... NaN S
1 2 1 1 ... C85 C
2 3 1 3 ... NaN S
3 4 1 1 ... C123 S
4 5 0 3 ... NaN S
[5 rows x 12 columns]
数据分析
接下来,我们将使用 pandas 库来分析数据。首先,我们看看乘客的生存率是如何分布的。
# 计算乘客的生存率
survival_rate = data['Survived'].mean()
# 打印生存率
print('生存率:', survival_rate)
输出结果:
生存率: 0.3838383838383838
从这个结果可以看出,泰坦尼克号乘客的生存率只有 38.38%。也就是说,每 10 个乘客中,只有 4 个人能够幸免于难。
接下来,我们看看哪些因素影响了乘客的生存率。首先,我们看看乘客的性别是如何影响生存率的。
# 按性别分组计算乘客的生存率
survival_rate_by_sex = data.groupby('Sex')['Survived'].mean()
# 打印生存率
print('按性别分组的生存率:')
print(survival_rate_by_sex)
输出结果:
按性别分组的生存率:
Sex
female 0.742038
male 0.188908
Name: Survived, dtype: float64
从这个结果可以看出,女性的生存率要远高于男性。女性的生存率为 74.2%,而男性的生存率只有 18.89%。这表明,女性在泰坦尼克号沉没事故中受到了更多的照顾。
接下来,我们看看乘客的舱位等级是如何影响生存率的。
# 按舱位等级分组计算乘客的生存率
survival_rate_by_class = data.groupby('Pclass')['Survived'].mean()
# 打印生存率
print('按舱位等级分组的生存率:')
print(survival_rate_by_class)
输出结果:
按舱位等级分组的生存率:
Pclass
1 0.629630
2 0.472826
3 0.242363
Name: Survived, dtype: float64
从这个结果可以看出,舱位等级越高,乘客的生存率就越高。一等舱乘客的生存率为 62.96%,二等舱乘客的生存率为 47.28%,三等舱乘客的生存率只有 24.23%。这表明,一等舱和二等舱乘客在泰坦尼克号沉没事故中受到了更多的照顾。
结论
通过对泰坦尼克号乘客数据的分析,我们可以看到,乘客的性别、舱位等级等因素都影响了他们的生存率。这些因素表明,在泰坦尼克号沉没事故中,女性、一等舱和二等舱乘客受到了更多的照顾。
这次事故也给了我们很多启示。首先,我们需要提高船舶的安全标准,以防止类似事件再次发生。其次,我们需要加强对船员的培训,让他们在紧急情况下能够更好地应对。最后,我们需要加强对乘客的教育,让他们在紧急情况下知道如何自救。