ステップ3:データの大きさと空欄を調べる

🎯 このステップでやること何人分のデータがあるのか、どこが空欄なのかを確認する。所要時間:約7分。


3-1. データの大きさを見る

📋 コード(新しいセルに貼り付けて実行)

print("train:", train.shape)
print("test :", test.shape)

✅ こう出れば成功

train: (891, 12)
test : (418, 11)

読み方は (行数, 列数) です。つまり、

  • 学習用データ:891人分、12列(Survivedを含む)
  • テストデータ:418人分、11列(Survivedがないので1列少ない)

つまりあなたは、418人の生死を予測することになります。提出ファイルは418行になります。この数字は後で必ず使うので、覚えておいてください。

3-2. 空欄(欠損値)がどこにあるか見る

📋 コード

train.isnull().sum()

✅ こう出れば成功

PassengerId      0
Survived         0
Pclass           0
Name             0
Sex              0
Age            177
SibSp            0
Parch            0
Ticket           0
Fare             0
Cabin          687
Embarked         2
dtype: int64

これは「列ごとに、空欄が何個あるか」です。わかったことは3つ。

列空欄の数判断
Age177個(891人中)2割が空欄。埋めて使う
Cabin687個8割が空欄。今回は使わない
Embarked2個ほぼ揃っている。埋めて使う

3-3. テストデータのほうも見る

📋 コード

test.isnull().sum()

✅ こう出れば成功 Age が86個、Fare が 1個、Cabin が327個 空欄になっています。

⚠️ ここ、重要です。 train では Fare に空欄がないのに、test には1個だけ空欄があります。これを見落とすと、後で「予測しようとしたらエラーが出る」という事故が起きます。train と test は必ず両方チェックする、と覚えてください。

3-4. 全体の生存率を見る

📋 コード

train["Survived"].value_counts()

✅ こう出れば成功

Survived
0    549
1    342
Name: count, dtype: int64

891人のうち、549人が死亡、342人が生存。生存率はおよそ 38% です。

📋 コード(割合で見る)

train["Survived"].mean()

✅ こう出れば成功

0.3838383838383838

💡 ここで1つ大事なことがわかります。仮に「全員死亡」と予測しただけで、正解率は約62%になります。つまり 62%は何もしなくても取れる点数 です。ここからどれだけ上積みできるかの勝負になります。


💡 何をしたのか(読み飛ばし可)

コード意味
.shape表の大きさ(行数, 列数)
.isnull()各マスが空欄かどうかを True / False で返す
.sum()True の数を合計する(=空欄の個数)
.value_counts()その列にどの値が何個あるかを数える
.mean()平均。0と1の列なら「1の割合」になる

欠損値(空欄・NaN)は、そのままでは機械学習にかけられません。 必ず「何かで埋める」か「その列を使わない」かを決める必要があります。これはステップ7でやります。

おまけ:もっと見たい人向け(やらなくてOK)

train.info()        # 各列の型と、データがある件数
train.describe()    # 数値列の平均・最小・最大など

✅ ここまでできたら

次のステップは、この章でいちばん面白いところです。「誰が生き残ったのか」をデータから暴きます。