ステップ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つ。
| 列 | 空欄の数 | 判断 |
|---|---|---|
| Age | 177個(891人中) | 2割が空欄。埋めて使う |
| Cabin | 687個 | 8割が空欄。今回は使わない |
| Embarked | 2個 | ほぼ揃っている。埋めて使う |
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() # 数値列の平均・最小・最大など
✅ ここまでできたら
次のステップは、この章でいちばん面白いところです。「誰が生き残ったのか」をデータから暴きます。