まず最初に必要なものをインポートします。

In [1]:
import pandas as pd
from pandas import Series,DataFrame
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline

まずkaggleからタイタニック号沈没事件のデータを落としてpandasで読み込みます。

In [2]:
titanic_td = pd.read_csv('train.csv')
titanic_td
Out[2]:
PassengerId Survived Pclass Name Sex Age SibSp Parch Ticket Fare Cabin Embarked
0 1 0 3 Braund, Mr. Owen Harris male 22.0 1 0 A/5 21171 7.2500 NaN S
1 2 1 1 Cumings, Mrs. John Bradley (Florence Briggs Th... female 38.0 1 0 PC 17599 71.2833 C85 C
2 3 1 3 Heikkinen, Miss. Laina female 26.0 0 0 STON/O2. 3101282 7.9250 NaN S
3 4 1 1 Futrelle, Mrs. Jacques Heath (Lily May Peel) female 35.0 1 0 113803 53.1000 C123 S
4 5 0 3 Allen, Mr. William Henry male 35.0 0 0 373450 8.0500 NaN S
5 6 0 3 Moran, Mr. James male NaN 0 0 330877 8.4583 NaN Q
6 7 0 1 McCarthy, Mr. Timothy J male 54.0 0 0 17463 51.8625 E46 S
7 8 0 3 Palsson, Master. Gosta Leonard male 2.0 3 1 349909 21.0750 NaN S
8 9 1 3 Johnson, Mrs. Oscar W (Elisabeth Vilhelmina Berg) female 27.0 0 2 347742 11.1333 NaN S
9 10 1 2 Nasser, Mrs. Nicholas (Adele Achem) female 14.0 1 0 237736 30.0708 NaN C
10 11 1 3 Sandstrom, Miss. Marguerite Rut female 4.0 1 1 PP 9549 16.7000 G6 S
11 12 1 1 Bonnell, Miss. Elizabeth female 58.0 0 0 113783 26.5500 C103 S
12 13 0 3 Saundercock, Mr. William Henry male 20.0 0 0 A/5. 2151 8.0500 NaN S
13 14 0 3 Andersson, Mr. Anders Johan male 39.0 1 5 347082 31.2750 NaN S
14 15 0 3 Vestrom, Miss. Hulda Amanda Adolfina female 14.0 0 0 350406 7.8542 NaN S
15 16 1 2 Hewlett, Mrs. (Mary D Kingcome) female 55.0 0 0 248706 16.0000 NaN S
16 17 0 3 Rice, Master. Eugene male 2.0 4 1 382652 29.1250 NaN Q
17 18 1 2 Williams, Mr. Charles Eugene male NaN 0 0 244373 13.0000 NaN S
18 19 0 3 Vander Planke, Mrs. Julius (Emelia Maria Vande... female 31.0 1 0 345763 18.0000 NaN S
19 20 1 3 Masselmani, Mrs. Fatima female NaN 0 0 2649 7.2250 NaN C
20 21 0 2 Fynney, Mr. Joseph J male 35.0 0 0 239865 26.0000 NaN S
21 22 1 2 Beesley, Mr. Lawrence male 34.0 0 0 248698 13.0000 D56 S
22 23 1 3 McGowan, Miss. Anna "Annie" female 15.0 0 0 330923 8.0292 NaN Q
23 24 1 1 Sloper, Mr. William Thompson male 28.0 0 0 113788 35.5000 A6 S
24 25 0 3 Palsson, Miss. Torborg Danira female 8.0 3 1 349909 21.0750 NaN S
25 26 1 3 Asplund, Mrs. Carl Oscar (Selma Augusta Emilia... female 38.0 1 5 347077 31.3875 NaN S
26 27 0 3 Emir, Mr. Farred Chehab male NaN 0 0 2631 7.2250 NaN C
27 28 0 1 Fortune, Mr. Charles Alexander male 19.0 3 2 19950 263.0000 C23 C25 C27 S
28 29 1 3 O'Dwyer, Miss. Ellen "Nellie" female NaN 0 0 330959 7.8792 NaN Q
29 30 0 3 Todoroff, Mr. Lalio male NaN 0 0 349216 7.8958 NaN S
... ... ... ... ... ... ... ... ... ... ... ... ...
861 862 0 2 Giles, Mr. Frederick Edward male 21.0 1 0 28134 11.5000 NaN S
862 863 1 1 Swift, Mrs. Frederick Joel (Margaret Welles Ba... female 48.0 0 0 17466 25.9292 D17 S
863 864 0 3 Sage, Miss. Dorothy Edith "Dolly" female NaN 8 2 CA. 2343 69.5500 NaN S
864 865 0 2 Gill, Mr. John William male 24.0 0 0 233866 13.0000 NaN S
865 866 1 2 Bystrom, Mrs. (Karolina) female 42.0 0 0 236852 13.0000 NaN S
866 867 1 2 Duran y More, Miss. Asuncion female 27.0 1 0 SC/PARIS 2149 13.8583 NaN C
867 868 0 1 Roebling, Mr. Washington Augustus II male 31.0 0 0 PC 17590 50.4958 A24 S
868 869 0 3 van Melkebeke, Mr. Philemon male NaN 0 0 345777 9.5000 NaN S
869 870 1 3 Johnson, Master. Harold Theodor male 4.0 1 1 347742 11.1333 NaN S
870 871 0 3 Balkic, Mr. Cerin male 26.0 0 0 349248 7.8958 NaN S
871 872 1 1 Beckwith, Mrs. Richard Leonard (Sallie Monypeny) female 47.0 1 1 11751 52.5542 D35 S
872 873 0 1 Carlsson, Mr. Frans Olof male 33.0 0 0 695 5.0000 B51 B53 B55 S
873 874 0 3 Vander Cruyssen, Mr. Victor male 47.0 0 0 345765 9.0000 NaN S
874 875 1 2 Abelson, Mrs. Samuel (Hannah Wizosky) female 28.0 1 0 P/PP 3381 24.0000 NaN C
875 876 1 3 Najib, Miss. Adele Kiamie "Jane" female 15.0 0 0 2667 7.2250 NaN C
876 877 0 3 Gustafsson, Mr. Alfred Ossian male 20.0 0 0 7534 9.8458 NaN S
877 878 0 3 Petroff, Mr. Nedelio male 19.0 0 0 349212 7.8958 NaN S
878 879 0 3 Laleff, Mr. Kristo male NaN 0 0 349217 7.8958 NaN S
879 880 1 1 Potter, Mrs. Thomas Jr (Lily Alexenia Wilson) female 56.0 0 1 11767 83.1583 C50 C
880 881 1 2 Shelley, Mrs. William (Imanita Parrish Hall) female 25.0 0 1 230433 26.0000 NaN S
881 882 0 3 Markun, Mr. Johann male 33.0 0 0 349257 7.8958 NaN S
882 883 0 3 Dahlberg, Miss. Gerda Ulrika female 22.0 0 0 7552 10.5167 NaN S
883 884 0 2 Banfield, Mr. Frederick James male 28.0 0 0 C.A./SOTON 34068 10.5000 NaN S
884 885 0 3 Sutehall, Mr. Henry Jr male 25.0 0 0 SOTON/OQ 392076 7.0500 NaN S
885 886 0 3 Rice, Mrs. William (Margaret Norton) female 39.0 0 5 382652 29.1250 NaN Q
886 887 0 2 Montvila, Rev. Juozas male 27.0 0 0 211536 13.0000 NaN S
887 888 1 1 Graham, Miss. Margaret Edith female 19.0 0 0 112053 30.0000 B42 S
888 889 0 3 Johnston, Miss. Catherine Helen "Carrie" female NaN 1 2 W./C. 6607 23.4500 NaN S
889 890 1 1 Behr, Mr. Karl Howell male 26.0 0 0 111369 30.0000 C148 C
890 891 0 3 Dooley, Mr. Patrick male 32.0 0 0 370376 7.7500 NaN Q

891 rows × 12 columns

このデータの項目は以下のとおりです。

  • PassengerID: 乗客ID
  • Survived: 生存結果 (1: 生存, 0: 死亡)
  • Pclass: (PassengerClass)客室の等数。1等客室、2等客室、3等客室の3つで1等客室が最も高級。
  • Name: 乗客の名前
  • Sex: 性別
  • Age: 年齢
  • SibSp: (Sibling,Species) 兄弟姉妹。(1:兄弟姉妹と一緒に乗った,0:いなかった)
  • Parch: (Parent,Children) 両親もしくは子供の数。(1:親もしくは子といた。0:いなかった。)
  • Ticket: チケット番号
  • Fare: 乗船料金
  • Cabin: 当時いた船の中の場所
  • Embarked: 乗船した港Cherbourg、Queenstown、Southamptonの3種類

kaggleで配布されているタイタニック号のデータは

  • 約900人分のラベル付きの学習データ
  • 約400人分のラベルなしの学習データ

という構成になっていて、本来的には900人分学習して、400人の生存率を求める。という用途で利用するもののようですが、今回は学習は行わずデータ分析のみに徹したいと思います。

問題設定をする

データ分析をしていく上で何が知りたいのか考えてみます。

  • 男女比率は?
  • 年齢分布は?
  • 大人と子供の比率は?
  • 性別や年令の生存比率は?
  • 客室と生存率の相関はあるか?
  • Cabinと生存率の相関はあるか?

与えられたデータを詳しく見ていく

性別

男女比です。

In [3]:
sns.countplot('Sex', data=titanic_td)
Out[3]:
<matplotlib.axes._subplots.AxesSubplot at 0x10925cdd8>

男性は女性の2倍ほど乗っていたようです。

客室を性別で層別化してみる

In [4]:
sns.countplot('Pclass', hue='Sex', data=titanic_td)
Out[4]:
<matplotlib.axes._subplots.AxesSubplot at 0x109250828>

2等客室が最も人数が少なく、3等客室が最も人数が多く、どの客室でも男性の方が多いことがわかります。

次に年齢から、大人と子供に分け、性別に加え、「子供」というカテゴリーを作成します。 pandasのイテレーションについては以下のサイトが参考になりました。

【参考】Python pandas データのイテレーションと関数適用、pipe - StatsFragments

In [5]:
# 16歳未満を子供とする
def male_female_child(passenger):
    age,sex = passenger
    if age<16:
        return 'child'
    else:
        return sex
In [6]:
# personという名前の新しい列を追加します
# titanic_td[['Age','Sex']]
titanic_td['person'] = titanic_td[['Age','Sex']].apply(male_female_child, axis=1)
titanic_td['person'].head(10)
Out[6]:
0      male
1    female
2    female
3    female
4      male
5      male
6      male
7     child
8    female
9     child
Name: person, dtype: object

ここで、再び先程と同じことをしてみます。

In [7]:
sns.countplot('Pclass', data=titanic_td, hue='person')
Out[7]:
<matplotlib.axes._subplots.AxesSubplot at 0x109336ba8>

上の結果より、1等客室にはあまり子供がおらず、3等客室に子供が多いことがわかります。

年齢

年齢の分布をヒストグラムで見てみます。

In [8]:
titanic_td['Age'].hist(bins=70)
Out[8]:
<matplotlib.axes._subplots.AxesSubplot at 0x10943c860>

すごく高齢の人もいるし、0歳の子がたくさんいることもわかります。

客室と年齢の相関

客室と年齢の分布を見てみます。

In [9]:
fig = sns.FacetGrid(titanic_td, hue='Pclass', aspect=4)
fig.map(sns.kdeplot,'Age',shade= True)
oldest = titanic_td['Age'].max()
fig.set(xlim=(0,oldest))
fig.add_legend()
Out[9]:
<seaborn.axisgrid.FacetGrid at 0x1096450b8>

客室のレベルが下がるにつれて年齢も下がっているのがわかります。 やっぱ高齢の人はお金あるんですね。

タイタニック号の一等客室は、現在(2015年)の通貨で約77,000ポンドでした。平均的な二等客室は約1,000ポンド、三等客室は約300ポンドから600ポンドで、その差はとても大きいものでした。

【出典】映画『タイタニック』の驚くべき14の事実 | ciatr[シアター]

家族連れか?単身者か?

In [10]:
titanic_td['Alone'] = titanic_td.Parch + titanic_td.SibSp
titanic_td['Alone']
Out[10]:
0       1
1       1
2       0
3       1
4       0
5       0
6       0
7       4
8       2
9       1
10      2
11      0
12      0
13      6
14      0
15      0
16      5
17      0
18      1
19      0
20      0
21      0
22      0
23      0
24      4
25      6
26      0
27      5
28      0
29      0
       ..
861     1
862     0
863    10
864     0
865     0
866     1
867     0
868     0
869     2
870     0
871     2
872     0
873     0
874     1
875     0
876     0
877     0
878     0
879     1
880     1
881     0
882     0
883     0
884     0
885     5
886     0
887     0
888     3
889     0
890     0
Name: Alone, Length: 891, dtype: int64
In [11]:
titanic_td['Alone'].loc[titanic_td['Alone'] >0] = 'With Family'
titanic_td['Alone'].loc[titanic_td['Alone'] == 0] = 'Alone'
sns.countplot('Alone', data=titanic_td, palette='Blues')
/Users/cloudspider/.pyenv/versions/350tensorflow/lib/python3.5/site-packages/pandas/core/indexing.py:179: SettingWithCopyWarning: 
A value is trying to be set on a copy of a slice from a DataFrame

See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy
  self._setitem_with_indexer(indexer, value)
Out[11]:
<matplotlib.axes._subplots.AxesSubplot at 0x1093a1b70>

単身者の方が若干多いようです。

どのような人が生存したか

ここまでは乗客がどのような人かを見てきましたが、これからは生存率とその他の項目との相関を調べていきます。

まずは全体の生存率を見てみます。

In [12]:
titanic_td["Survivor"] = titanic_td.Survived.map({0: "no", 1:"yes"})
sns.countplot('Survivor', data=titanic_td, palette='Set1')
Out[12]:
<matplotlib.axes._subplots.AxesSubplot at 0x109813eb8>

次に生存者と客室の相関を見てみます。

In [13]:
sns.factorplot('Pclass', 'Survived', data=titanic_td, order=[1,2,3])
Out[13]:
<seaborn.axisgrid.FacetGrid at 0x1097114a8>

3等客室は生存率が著しく低いのが見て取れます。 1等客室の人たちの救助を優先したのでしょう。

以下のような、意図的な理由や人員不足の理由もあったようです。

タイタニック号のクルーは三等船客の避難を積極的に妨害した。錠がかけられクルーにより見張られた壁もあり、これは明らかに三等船客が救命ボートに殺到するのを防ぐためであった。

【引用】タイタニック号沈没事故 - Wikipedia

この時点で、救命ボートに乗った乗客のほとんどは一等船室及び二等船室の乗客であった。船尾の三等船室にいた乗客はほとんどデッキにたどり着けず、通路でうろうろと迷い、三等船室を一等や二等の区域と分けている壁や仕切りに阻まれて動けなかった。この隔離は単なる社会的理由だけではなく、アメリカ合衆国移民法の条件によるものでもあった。この法は、移民をコントロールし、感染症の広がりを防ぐため三等船客を隔離するよう定めていた。

【引用】タイタニック号沈没事故 - Wikipedia

一等船室の客室係は数室のみを担当していたが、一方で二等と三等担当の客室係は多数の人々をさばかねばならなかった。一等船室の客室係は直接的な支援を行い、担当している人々が服を着るのを手伝い、デッキまで連れて行くこともしていた。ずっと多くの人々に対処せねばならなかった二等と三等の客室係のほとんどはドアを開け放ち、安全ベルトをつけて上に来るよう乗客に伝えるところまでしかできなかった。三等船室では、乗客はおおむねデッキに来るよう言われた後は自分の判断で行動するほかなかった。

【引用】タイタニック号沈没事故 - Wikipedia

次に性別の生存率を見てみます。

In [14]:
sns.factorplot('Pclass', 'Survived', hue='person', data=titanic_td, order=[1,2,3], aspect=2)
Out[14]:
<seaborn.axisgrid.FacetGrid at 0x109e7af28>

客室にかかわらず、女性と子供の生存率が高く、男性の生存率が低いことが見て取れます。 これはwikiの

ライトラーが船長に「女性と子供をボートに乗せた方が良いのではないでしょうか。」 ("Hadn't we better get the women and children into the boats, sir?") と提案したところ、船長は「女性と子供を乗せて降下させよう。」 ("women and children in and lower away.") と答えた。

【引用】タイタニック号沈没事故 - Wikipedia

という記述からもわかるように、救助に当たっては女性と子供が優先されたようですね。 また、以下の様な記述もありました。

どちらの船員もボートを降ろす時に1隻あたりの安全積載人数を知らず、気をつけすぎていっぱいまで乗せないという過ちを犯した。もし積載人数いっぱいまで乗せていたら、もう500名ほどの人々の命が救えたであろうと考えられている。これが行われなかったため、救命ボートは多くの空席があるまま進水し、数百名の人々(大部分が男性)が船に取り残された。

【引用】タイタニック号沈没事故 - Wikipedia

次に年齢と生存率の関係です。

In [15]:
sns.lmplot('Age', 'Survived', data=titanic_td)
Out[15]:
<seaborn.axisgrid.FacetGrid at 0x109eab550>

高齢になるほど生存率が下がっています。 ちなみにグラフの薄い水色の範囲は95%の信頼区間を示しています。

次に客室と年齢と生存率の関係を見てみます。

In [16]:
generations=[10,20,40,60,80]
sns.lmplot('Age', 'Survived', hue='Pclass', data=titanic_td, x_bins=generations, hue_order=[1,2,3])
Out[16]:
<seaborn.axisgrid.FacetGrid at 0x109ddd048>

1等客室の生存率は高いのがわかります。 また、高齢な人は生存率は低いが、飛び抜けて標準偏差が高いので一部の高齢者(偉い人?)の生存率がすごく高いのがわかります。 真っ先に助けられたのでしょうか。

次に、性別で層別化してみます。 女性は高齢の方が生存率が高く、男の高齢の偉い人は生存率が高いのがわかります。

In [17]:
sns.lmplot('Age', 'Survived', hue='Sex', data=titanic_td, palette='winter', x_bins=generations)
Out[17]:
<seaborn.axisgrid.FacetGrid at 0x10a3c6278>

乗客がいたデッキと生存率は関係あるか?

「生存率」と「Cabin」と「客室」のデータフレームを作成します。

In [18]:
deck_sv = titanic_td[['Survived','Cabin','Pclass']]
deck_sv = deck_sv.dropna()

pclass = []
for pcl in deck_sv['Pclass']:
    pclass.append(pcl)

surs = []
for sur in deck_sv['Survived']:
    surs.append(sur)

# Cabinは最初の一文字で場所がわかる
levels = []
for level in deck_sv['Cabin']:
    levels.append(level[0])

pcl_df = DataFrame({'Pclass': pclass})
surs_df =  DataFrame({'Survivor':surs})
cabin_df = DataFrame({'Cabin': levels})

deck_sv = pd.concat([surs_df, cabin_df, pcl_df], axis=1)
deck_sv
Out[18]:
Survivor Cabin Pclass
0 1 C 1
1 1 C 1
2 0 E 1
3 1 G 3
4 1 C 1
5 1 D 2
6 1 A 1
7 0 C 1
8 1 B 1
9 1 D 1
10 0 B 1
11 1 C 1
12 1 B 1
13 0 C 1
14 1 F 2
15 0 F 3
16 1 C 1
17 0 E 1
18 0 A 1
19 1 D 1
20 0 D 1
21 0 C 1
22 0 B 1
23 1 E 2
24 0 D 1
25 1 F 3
26 1 D 1
27 0 C 1
28 0 B 1
29 0 F 2
... ... ... ...
174 1 E 3
175 1 B 1
176 1 B 1
177 1 D 1
178 0 E 2
179 0 F 3
180 1 B 1
181 1 B 1
182 0 D 1
183 0 B 1
184 1 D 1
185 1 B 1
186 0 A 1
187 1 E 1
188 0 B 1
189 1 B 1
190 1 E 3
191 1 B 1
192 1 E 1
193 1 C 1
194 1 C 1
195 1 D 1
196 1 E 1
197 1 D 1
198 0 A 1
199 1 D 1
200 0 B 1
201 1 C 1
202 1 B 1
203 1 C 1

204 rows × 3 columns

可視化してみます。

In [19]:
sns.countplot('Cabin', hue='Pclass', data=deck_sv)
Out[19]:
<matplotlib.axes._subplots.AxesSubplot at 0x10b5c7550>

'T'というないはずのデータがあります。データ入力の時にミスったのでしょう。外します。

【参考】pandasで条件にあった値を持つ行を削除する場合 - アクサンの場合

In [20]:
deck_sv = deck_sv[deck_sv.Cabin != 'T']
sns.countplot('Cabin', hue='Pclass', data=deck_sv, order=['A','B','C','D','E','F','G'])
Out[20]:
<matplotlib.axes._subplots.AxesSubplot at 0x10b7d6cf8>

あれ? さっきまで3等客室の人数が一番多かったのに、この図では1等客室が一番多くなっています。何ででしょう。

これは、さきほどのdropna()によって、Cabinが'NaN'になっている人を削除した時に、2等客室、3等客室の人が多く削除された様です。 つまり、「場所がどこか」を記述させる手続きは全体的にはやったりやらなかったりが多いが、1等客室の人に対してはちゃんと行ったということになるのでしょうか。

次にCabinと生存率の関係を見てみます。

In [21]:
sns.factorplot('Cabin','Survivor', data=deck_sv, order=['A','B','C','D','E','F','G'])
Out[21]:
<seaborn.axisgrid.FacetGrid at 0x10b8887f0>

前述した通り、この図では1等客室の人が多く全体的に生存率が高くなっていますが、 それでもAが低く、B,D,Eが高くなっているのがわかります。 wikiにこんな記述がありました。

CからGまでのデッキにある三等船室はデッキの終端部分であったため、乾舷までたどり着くには長く曲がりくねった通路を通る必要があり、救命ボートまで最も遠かった。対照的に一等船室は上甲板にあり、最短であった。このため、救命ボートまでの近さは誰が乗れたかを決める重要要因となった。

【引用】タイタニック号沈没事故 - Wikipedia

【引用】https://ja.wikipedia.org/wiki/%E3%82%BF%E3%82%A4%E3%82%BF%E3%83%8B%E3%83%83%E3%82%AF%E5%8F%B7%E6%B2%88%E6%B2%A1%E4%BA%8B%E6%95%85

こうあるように、場所によって助けやすさのようなものがあったのでしょう。

childの年齢別の生存率を知りたい。

wikiを読むだけでも、タイタニック号から救助ボートに移る過程、 また救助ボートに移った上で、救助隊のカルパチア号が来るまでの間に数時間がかかったことや、 水温が物凄く低かったことなどから、大変過酷な状況であったことが見て取れるが、 やはり子供の中でも0歳に近くなる方が生存率が下がってしまうのだろうか。

In [22]:
titanic_td
Out[22]:
PassengerId Survived Pclass Name Sex Age SibSp Parch Ticket Fare Cabin Embarked person Alone Survivor
0 1 0 3 Braund, Mr. Owen Harris male 22.0 1 0 A/5 21171 7.2500 NaN S male With Family no
1 2 1 1 Cumings, Mrs. John Bradley (Florence Briggs Th... female 38.0 1 0 PC 17599 71.2833 C85 C female With Family yes
2 3 1 3 Heikkinen, Miss. Laina female 26.0 0 0 STON/O2. 3101282 7.9250 NaN S female Alone yes
3 4 1 1 Futrelle, Mrs. Jacques Heath (Lily May Peel) female 35.0 1 0 113803 53.1000 C123 S female With Family yes
4 5 0 3 Allen, Mr. William Henry male 35.0 0 0 373450 8.0500 NaN S male Alone no
5 6 0 3 Moran, Mr. James male NaN 0 0 330877 8.4583 NaN Q male Alone no
6 7 0 1 McCarthy, Mr. Timothy J male 54.0 0 0 17463 51.8625 E46 S male Alone no
7 8 0 3 Palsson, Master. Gosta Leonard male 2.0 3 1 349909 21.0750 NaN S child With Family no
8 9 1 3 Johnson, Mrs. Oscar W (Elisabeth Vilhelmina Berg) female 27.0 0 2 347742 11.1333 NaN S female With Family yes
9 10 1 2 Nasser, Mrs. Nicholas (Adele Achem) female 14.0 1 0 237736 30.0708 NaN C child With Family yes
10 11 1 3 Sandstrom, Miss. Marguerite Rut female 4.0 1 1 PP 9549 16.7000 G6 S child With Family yes
11 12 1 1 Bonnell, Miss. Elizabeth female 58.0 0 0 113783 26.5500 C103 S female Alone yes
12 13 0 3 Saundercock, Mr. William Henry male 20.0 0 0 A/5. 2151 8.0500 NaN S male Alone no
13 14 0 3 Andersson, Mr. Anders Johan male 39.0 1 5 347082 31.2750 NaN S male With Family no
14 15 0 3 Vestrom, Miss. Hulda Amanda Adolfina female 14.0 0 0 350406 7.8542 NaN S child Alone no
15 16 1 2 Hewlett, Mrs. (Mary D Kingcome) female 55.0 0 0 248706 16.0000 NaN S female Alone yes
16 17 0 3 Rice, Master. Eugene male 2.0 4 1 382652 29.1250 NaN Q child With Family no
17 18 1 2 Williams, Mr. Charles Eugene male NaN 0 0 244373 13.0000 NaN S male Alone yes
18 19 0 3 Vander Planke, Mrs. Julius (Emelia Maria Vande... female 31.0 1 0 345763 18.0000 NaN S female With Family no
19 20 1 3 Masselmani, Mrs. Fatima female NaN 0 0 2649 7.2250 NaN C female Alone yes
20 21 0 2 Fynney, Mr. Joseph J male 35.0 0 0 239865 26.0000 NaN S male Alone no
21 22 1 2 Beesley, Mr. Lawrence male 34.0 0 0 248698 13.0000 D56 S male Alone yes
22 23 1 3 McGowan, Miss. Anna "Annie" female 15.0 0 0 330923 8.0292 NaN Q child Alone yes
23 24 1 1 Sloper, Mr. William Thompson male 28.0 0 0 113788 35.5000 A6 S male Alone yes
24 25 0 3 Palsson, Miss. Torborg Danira female 8.0 3 1 349909 21.0750 NaN S child With Family no
25 26 1 3 Asplund, Mrs. Carl Oscar (Selma Augusta Emilia... female 38.0 1 5 347077 31.3875 NaN S female With Family yes
26 27 0 3 Emir, Mr. Farred Chehab male NaN 0 0 2631 7.2250 NaN C male Alone no
27 28 0 1 Fortune, Mr. Charles Alexander male 19.0 3 2 19950 263.0000 C23 C25 C27 S male With Family no
28 29 1 3 O'Dwyer, Miss. Ellen "Nellie" female NaN 0 0 330959 7.8792 NaN Q female Alone yes
29 30 0 3 Todoroff, Mr. Lalio male NaN 0 0 349216 7.8958 NaN S male Alone no
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
861 862 0 2 Giles, Mr. Frederick Edward male 21.0 1 0 28134 11.5000 NaN S male With Family no
862 863 1 1 Swift, Mrs. Frederick Joel (Margaret Welles Ba... female 48.0 0 0 17466 25.9292 D17 S female Alone yes
863 864 0 3 Sage, Miss. Dorothy Edith "Dolly" female NaN 8 2 CA. 2343 69.5500 NaN S female With Family no
864 865 0 2 Gill, Mr. John William male 24.0 0 0 233866 13.0000 NaN S male Alone no
865 866 1 2 Bystrom, Mrs. (Karolina) female 42.0 0 0 236852 13.0000 NaN S female Alone yes
866 867 1 2 Duran y More, Miss. Asuncion female 27.0 1 0 SC/PARIS 2149 13.8583 NaN C female With Family yes
867 868 0 1 Roebling, Mr. Washington Augustus II male 31.0 0 0 PC 17590 50.4958 A24 S male Alone no
868 869 0 3 van Melkebeke, Mr. Philemon male NaN 0 0 345777 9.5000 NaN S male Alone no
869 870 1 3 Johnson, Master. Harold Theodor male 4.0 1 1 347742 11.1333 NaN S child With Family yes
870 871 0 3 Balkic, Mr. Cerin male 26.0 0 0 349248 7.8958 NaN S male Alone no
871 872 1 1 Beckwith, Mrs. Richard Leonard (Sallie Monypeny) female 47.0 1 1 11751 52.5542 D35 S female With Family yes
872 873 0 1 Carlsson, Mr. Frans Olof male 33.0 0 0 695 5.0000 B51 B53 B55 S male Alone no
873 874 0 3 Vander Cruyssen, Mr. Victor male 47.0 0 0 345765 9.0000 NaN S male Alone no
874 875 1 2 Abelson, Mrs. Samuel (Hannah Wizosky) female 28.0 1 0 P/PP 3381 24.0000 NaN C female With Family yes
875 876 1 3 Najib, Miss. Adele Kiamie "Jane" female 15.0 0 0 2667 7.2250 NaN C child Alone yes
876 877 0 3 Gustafsson, Mr. Alfred Ossian male 20.0 0 0 7534 9.8458 NaN S male Alone no
877 878 0 3 Petroff, Mr. Nedelio male 19.0 0 0 349212 7.8958 NaN S male Alone no
878 879 0 3 Laleff, Mr. Kristo male NaN 0 0 349217 7.8958 NaN S male Alone no
879 880 1 1 Potter, Mrs. Thomas Jr (Lily Alexenia Wilson) female 56.0 0 1 11767 83.1583 C50 C female With Family yes
880 881 1 2 Shelley, Mrs. William (Imanita Parrish Hall) female 25.0 0 1 230433 26.0000 NaN S female With Family yes
881 882 0 3 Markun, Mr. Johann male 33.0 0 0 349257 7.8958 NaN S male Alone no
882 883 0 3 Dahlberg, Miss. Gerda Ulrika female 22.0 0 0 7552 10.5167 NaN S female Alone no
883 884 0 2 Banfield, Mr. Frederick James male 28.0 0 0 C.A./SOTON 34068 10.5000 NaN S male Alone no
884 885 0 3 Sutehall, Mr. Henry Jr male 25.0 0 0 SOTON/OQ 392076 7.0500 NaN S male Alone no
885 886 0 3 Rice, Mrs. William (Margaret Norton) female 39.0 0 5 382652 29.1250 NaN Q female With Family no
886 887 0 2 Montvila, Rev. Juozas male 27.0 0 0 211536 13.0000 NaN S male Alone no
887 888 1 1 Graham, Miss. Margaret Edith female 19.0 0 0 112053 30.0000 B42 S female Alone yes
888 889 0 3 Johnston, Miss. Catherine Helen "Carrie" female NaN 1 2 W./C. 6607 23.4500 NaN S female With Family no
889 890 1 1 Behr, Mr. Karl Howell male 26.0 0 0 111369 30.0000 C148 C male Alone yes
890 891 0 3 Dooley, Mr. Patrick male 32.0 0 0 370376 7.7500 NaN Q male Alone no

891 rows × 15 columns

In [23]:
child_td = titanic_td[titanic_td['person'] == 'child']
child_td
Out[23]:
PassengerId Survived Pclass Name Sex Age SibSp Parch Ticket Fare Cabin Embarked person Alone Survivor
7 8 0 3 Palsson, Master. Gosta Leonard male 2.00 3 1 349909 21.0750 NaN S child With Family no
9 10 1 2 Nasser, Mrs. Nicholas (Adele Achem) female 14.00 1 0 237736 30.0708 NaN C child With Family yes
10 11 1 3 Sandstrom, Miss. Marguerite Rut female 4.00 1 1 PP 9549 16.7000 G6 S child With Family yes
14 15 0 3 Vestrom, Miss. Hulda Amanda Adolfina female 14.00 0 0 350406 7.8542 NaN S child Alone no
16 17 0 3 Rice, Master. Eugene male 2.00 4 1 382652 29.1250 NaN Q child With Family no
22 23 1 3 McGowan, Miss. Anna "Annie" female 15.00 0 0 330923 8.0292 NaN Q child Alone yes
24 25 0 3 Palsson, Miss. Torborg Danira female 8.00 3 1 349909 21.0750 NaN S child With Family no
39 40 1 3 Nicola-Yarred, Miss. Jamila female 14.00 1 0 2651 11.2417 NaN C child With Family yes
43 44 1 2 Laroche, Miss. Simonne Marie Anne Andree female 3.00 1 2 SC/Paris 2123 41.5792 NaN C child With Family yes
50 51 0 3 Panula, Master. Juha Niilo male 7.00 4 1 3101295 39.6875 NaN S child With Family no
58 59 1 2 West, Miss. Constance Mirium female 5.00 1 2 C.A. 34651 27.7500 NaN S child With Family yes
59 60 0 3 Goodwin, Master. William Frederick male 11.00 5 2 CA 2144 46.9000 NaN S child With Family no
63 64 0 3 Skoog, Master. Harald male 4.00 3 2 347088 27.9000 NaN S child With Family no
78 79 1 2 Caldwell, Master. Alden Gates male 0.83 0 2 248738 29.0000 NaN S child With Family yes
111 112 0 3 Zabour, Miss. Hileni female 14.50 1 0 2665 14.4542 NaN C child With Family no
119 120 0 3 Andersson, Miss. Ellis Anna Maria female 2.00 4 2 347082 31.2750 NaN S child With Family no
125 126 1 3 Nicola-Yarred, Master. Elias male 12.00 1 0 2651 11.2417 NaN C child With Family yes
147 148 0 3 Ford, Miss. Robina Maggie "Ruby" female 9.00 2 2 W./C. 6608 34.3750 NaN S child With Family no
164 165 0 3 Panula, Master. Eino Viljami male 1.00 4 1 3101295 39.6875 NaN S child With Family no
165 166 1 3 Goldsmith, Master. Frank John William "Frankie" male 9.00 0 2 363291 20.5250 NaN S child With Family yes
171 172 0 3 Rice, Master. Arthur male 4.00 4 1 382652 29.1250 NaN Q child With Family no
172 173 1 3 Johnson, Miss. Eleanor Ileen female 1.00 1 1 347742 11.1333 NaN S child With Family yes
182 183 0 3 Asplund, Master. Clarence Gustaf Hugo male 9.00 4 2 347077 31.3875 NaN S child With Family no
183 184 1 2 Becker, Master. Richard F male 1.00 2 1 230136 39.0000 F4 S child With Family yes
184 185 1 3 Kink-Heilmann, Miss. Luise Gretchen female 4.00 0 2 315153 22.0250 NaN S child With Family yes
193 194 1 2 Navratil, Master. Michel M male 3.00 1 1 230080 26.0000 F2 S child With Family yes
205 206 0 3 Strom, Miss. Telma Matilda female 2.00 0 1 347054 10.4625 G6 S child With Family no
233 234 1 3 Asplund, Miss. Lillian Gertrud female 5.00 4 2 347077 31.3875 NaN S child With Family yes
237 238 1 2 Collyer, Miss. Marjorie "Lottie" female 8.00 0 2 C.A. 31921 26.2500 NaN S child With Family yes
261 262 1 3 Asplund, Master. Edvin Rojj Felix male 3.00 4 2 347077 31.3875 NaN S child With Family yes
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
549 550 1 2 Davies, Master. John Morgan Jr male 8.00 1 1 C.A. 33112 36.7500 NaN S child With Family yes
618 619 1 2 Becker, Miss. Marion Louise female 4.00 2 1 230136 39.0000 F4 S child With Family yes
634 635 0 3 Skoog, Miss. Mabel female 9.00 3 2 347088 27.9000 NaN S child With Family no
642 643 0 3 Skoog, Miss. Margit Elizabeth female 2.00 3 2 347088 27.9000 NaN S child With Family no
644 645 1 3 Baclini, Miss. Eugenie female 0.75 2 1 2666 19.2583 NaN C child With Family yes
683 684 0 3 Goodwin, Mr. Charles Edward male 14.00 5 2 CA 2144 46.9000 NaN S child With Family no
686 687 0 3 Panula, Mr. Jaako Arnold male 14.00 4 1 3101295 39.6875 NaN S child With Family no
689 690 1 1 Madill, Miss. Georgette Alexandra female 15.00 0 1 24160 211.3375 B5 S child With Family yes
691 692 1 3 Karun, Miss. Manca female 4.00 0 1 349256 13.4167 NaN C child With Family yes
720 721 1 2 Harper, Miss. Annie Jessie "Nina" female 6.00 0 1 248727 33.0000 NaN S child With Family yes
731 732 0 3 Hassan, Mr. Houssein G N male 11.00 0 0 2699 18.7875 NaN C child Alone no
750 751 1 2 Wells, Miss. Joan female 4.00 1 1 29103 23.0000 NaN S child With Family yes
751 752 1 3 Moor, Master. Meier male 6.00 0 1 392096 12.4750 E121 S child With Family yes
755 756 1 2 Hamalainen, Master. Viljo male 0.67 1 1 250649 14.5000 NaN S child With Family yes
777 778 1 3 Emanuel, Miss. Virginia Ethel female 5.00 0 0 364516 12.4750 NaN S child Alone yes
780 781 1 3 Ayoub, Miss. Banoura female 13.00 0 0 2687 7.2292 NaN C child Alone yes
787 788 0 3 Rice, Master. George Hugh male 8.00 4 1 382652 29.1250 NaN Q child With Family no
788 789 1 3 Dean, Master. Bertram Vere male 1.00 1 2 C.A. 2315 20.5750 NaN S child With Family yes
802 803 1 1 Carter, Master. William Thornton II male 11.00 1 2 113760 120.0000 B96 B98 S child With Family yes
803 804 1 3 Thomas, Master. Assad Alexander male 0.42 0 1 2625 8.5167 NaN C child With Family yes
813 814 0 3 Andersson, Miss. Ebba Iris Alfrida female 6.00 4 2 347082 31.2750 NaN S child With Family no
819 820 0 3 Skoog, Master. Karl Thorsten male 10.00 3 2 347088 27.9000 NaN S child With Family no
824 825 0 3 Panula, Master. Urho Abraham male 2.00 4 1 3101295 39.6875 NaN S child With Family no
827 828 1 2 Mallet, Master. Andre male 1.00 0 2 S.C./PARIS 2079 37.0042 NaN C child With Family yes
830 831 1 3 Yasbeck, Mrs. Antoni (Selini Alexander) female 15.00 1 0 2659 14.4542 NaN C child With Family yes
831 832 1 2 Richards, Master. George Sibley male 0.83 1 1 29106 18.7500 NaN S child With Family yes
850 851 0 3 Andersson, Master. Sigvard Harald Elias male 4.00 4 2 347082 31.2750 NaN S child With Family no
852 853 0 3 Boulos, Miss. Nourelain female 9.00 1 1 2678 15.2458 NaN C child With Family no
869 870 1 3 Johnson, Master. Harold Theodor male 4.00 1 1 347742 11.1333 NaN S child With Family yes
875 876 1 3 Najib, Miss. Adele Kiamie "Jane" female 15.00 0 0 2667 7.2250 NaN C child Alone yes

83 rows × 15 columns

In [24]:
sns.lmplot('Age', 'Survived', data=child_td)
Out[24]:
<seaborn.axisgrid.FacetGrid at 0x10b9025c0>

素晴らしい。 総合的に子供の生存率は高めだが、その中でも0歳に近い子供の生存率が高くなっている。 周りの大人の人が必死に守ってあげたのだろう。