泰坦尼克号幸存率研究
總第53篇
代碼區(qū)域
import pandas as pd
import numpy as np
import matplotlib
import matplotlib.pyplot as plt
%matplotlib inline#為能夠jupyter在線使用matplotlib ?
df=pd.read_csv('C:\\Users\\dell\\Desktop\\titanic_data.csv')
df.head(5)#先顯示出前5行,觀察有哪些數(shù)據(jù)
數(shù)據(jù)概況:
PassengerId:乘客序號;
Survived:最終是否存活(1表示存活,0表示未存活);
Pclass:艙位,1是頭等艙,3是最低等;
Name:乘客姓名;
Sex:性別;
Age:年齡;
SibSp:一同上船的兄弟姐妹或配偶;
Parch:一同上船的父母或子女;
Ticket:船票信息;
Fare:乘客票價,決定了Pclass的等級;
Cabin:客艙編號,不同的編號對應(yīng)不同的位置;
Embarked:上船地點,主要是S(南安普頓)、C(瑟堡)、Q(皇后鎮(zhèn))。
欲想探討的問題:?
存活率與哪些因素有關(guān)? 猜想影響因素有:Pclass、Sex、Age、SibSp、Parch、Ticket、Cabin、Embarked。
01|泰坦尼克號整體情況:
通過下面代碼可以看出泰坦尼克號整體的幸存率約為39%。
代碼區(qū)域
survived_rate=float(df['Survived'].sum())/df['Survived'].count()#加float是為了讓小數(shù)結(jié)果顯示出來
survived_rate
out:0.38383838
02|幸存率與Pclass的關(guān)系:
可以看出兩者有強烈的相關(guān)關(guān)系,Pclass等級越高(1最高),幸存率越高。
代碼區(qū)域
Pclass_survived_rate=(df.groupby(['Pclass']).sum()/df.groupby(['Pclass']).count())['Survived']
Pclass_survived_rate.plot(kind='bar')#kind='bar'表示垂直柱狀圖、kind=‘barh’表示水平柱狀圖
03|幸存率與Sex的關(guān)系:
female的幸存率是male的3倍還要多。
代碼區(qū)域
Sex_survived_rate=(df.groupby(['Sex']).sum()/df.groupby(['Sex']).count())['Survived']
Sex_survived_rate.plot(kind='bar')
04|幸存率與Age的關(guān)系:
通過折線圖看出幸存率與Age沒有明確的關(guān)系。0-10歲的幸存率要明顯高于其他年齡段。
代碼區(qū)域
Sex_survived_rate=(df.groupby(['Age']).sum()/df.groupby(['Age']).count())['Survived']
Sex_survived_rate.plot()
代碼區(qū)域
age_train_p=df[~np.isnan(df['Age'])] ?#去除年齡數(shù)據(jù)中的NaN ?
ages=np.arange(0,80,10) ?#0~80歲,每10歲一段(年齡最大80歲) ?
age_cut=pd.cut(age_train_p.Age,ages) ?
age_cut_grouped=age_train_p.groupby(age_cut)?
age_Survival_Rate=(age_cut_grouped.sum()/age_cut_grouped.count())['Survived'] ?#計算每年齡段的幸存率 ?
age_Survival_Rate.plot(kind='bar')
05|幸存率與SibSp&Parch的關(guān)系:
通過柱狀圖可以看出,當(dāng)同行1-2個親人朋友時的幸存率更高。(這里將SibSp與Parch統(tǒng)一處理)
代碼區(qū)域
SibSp_Parch_survived_rate=((df.groupby(['SibSp']).sum()+df.groupby(['Parch']).sum())\
/(df.groupby(['SibSp']).count()+df.groupby(['Parch']).count()))['Survived']
SibSp_Parch_survived_rate.plot(kind='bar')
06|幸存率與Cabin的關(guān)系:
根據(jù)折線圖看出沒有明確的相關(guān)關(guān)系,再加上缺失數(shù)據(jù)過多687/891,所以幸存率對Cabin可以暫且不計入考慮。
代碼區(qū)域
max_survived_rate=(df.groupby(['Cabin']).sum()/df.groupby(['Cabin']).count())['Survived']
max_survived_rate.plot()
print df['Cabin'].count()#除缺失值以外的數(shù)據(jù)個數(shù)
df['Cabin'].fillna(0).count()#所有數(shù)據(jù)個數(shù)
07|幸存率與Embarked的關(guān)系:
通過柱形圖可以看出C、Q、S三地的幸存率依次下降。
代碼區(qū)域
max_survived_rate=(df.groupby(['Embarked']).sum()/df.groupby(['Embarked']).count())['Survived']
max_survived_rate.plot(kind='bar')
綜上所述:
1、泰坦尼克號整體的幸存率約為39%。
2、存活率與Pclass的關(guān)系:Pclass等級越高(1最高),存活率越高。多掙錢,坐頭等艙可以提高幸存率。
3、存活率與Sex的關(guān)系:female的存活率是male的3倍還要多。女性的天生優(yōu)勢。
4、存活率與Age的關(guān)系:沒有明確的關(guān)系,0-10歲的存活率明顯高于其他年齡段。
5、存活率與SibSp&Parch的關(guān)系:當(dāng)同行1-2個親人朋友時的存活率更高。出去玩耍結(jié)1-2個伴可以提高幸存率。
6、存活率與Cabin的關(guān)系:沒有明確的相關(guān)關(guān)系,再加上缺失數(shù)據(jù)過多687/891,所以存活率對Cabin可以暫且不計入考慮。
7、存活率與Embarked的關(guān)系:C、Q、S三地的存活率依次下降,不過應(yīng)該和登陸地本身是沒啥關(guān)系的,登陸地可能最終體現(xiàn)在性別、艙位等級等方面。
總結(jié)
以上是生活随笔為你收集整理的泰坦尼克号幸存率研究的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。