数据分析之泰坦尼克号事件
本文就泰坦尼克号上的生还率与各个因素之间的关系进行探索。
首先,我们先在网上进行泰坦尼克号数据的下载。
然后引用python中的几个包。
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline`
然后进行文件导入
df = pd.read_csv('TTNKH.csv')
接下来检查一下文件,然后看看数据中有多少幸存者。
df.info()
total_survived_sum = df['Survived'].sum()
total_nosurvived_sum =891 - df['Survived'].sum()
print("幸存者为%d,遇难者为%d"%(total_survived_sum,total_nosurvived_sum))
此次数据共有891人,幸存者为342,遇难者为549。
然后可以把生还者与未生还者的数据进行可视化。
plt.figure(figsize=(10,5))
plt.subplot(121)
sns.countplot(x="Survived",data=df )
plt.title('Survival count')
plt.subplot(122)
plt.pie([total_nosurvived_sum,total_survived_sum],labels=['no survived','survived'],autopct='%1.0f%%')
plt.title('Survival rate')
plt.show()
891名乘客中,生存率和死亡率分别为38%和62%
接下来就要对各因素进行具体分析了,首先是船舱等级。
我们先查询一下各船舱分别有多少人。
df[['Pclass','Survived']].groupby(['Pclass']).count()
plt.figure(figsize=(10,5))
plt.subplot(121)
sns.countplot(x='Pclass',data=df)
plt.title('Pclass count')
plt.subplot(122)
plt.pie(df[['Pclass','Survived']].groupby(['Pclass']).count(),labels=['1','2','3'],autopct='%1.0f%%')
plt.show()
由图可以明显看出,在灾难发生前,一等舱、二等舱、三等舱的乘客分别为216、184、491人,分别占总人数的 24%, 21%, 55%。
然后是灾难发生之后各船舱幸存人数。
survived_df=df[df[ 'Survived'] == 1]
survived_df[['Pclass','Survived']].groupby('Pclass').sum()
plt.figure(figsize=(10,5))
plt.subplot(121)
sns.countplot(x='Pclass',data=survived_df)
plt.title('Pclass Survived')
plt.ylabel('Survived Count')
plt.subplot(122)
plt.pie(survived_df[['Pclass','Survived']].groupby('Pclass').sum(),labels=['1','2','3'],autopct='%1.0f%%')
plt.show()
灾难发生后,1等舱的生存人数为136人,2等舱的生存人数为87人,3等舱的生存人数为119人,分别占总生存人数的40%,25%,35%。
接下该对各船舱的生存情况进行一个对比。
Pclass1=df[df['Pclass']==1]
Pclass2=df[df['Pclass']==2]
Pclass3=df[df['Pclass']==3]
plt.figure(figsize=(10,20))
plt.<