python

kaggle 入門!pandasで欠損値を埋める方法

扱うデータはkaggleコンペティションのタイタニック問題を扱います。

この記事では欠損値の補間について記述します。

データの読み込み

import pandas as pd
import numpy as np
 
train = pd.read_csv("./datasets/train.csv")
print(train[:3])

   PassengerId  Survived  Pclass  \
0            1         0       3   
1            2         1       1   
2            3         1       3   

                                                Name     Sex   Age  SibSp  \
0                            Braund, Mr. Owen Harris    male  22.0      1   
1  Cumings, Mrs. John Bradley (Florence Briggs Th...  female  38.0      1   
2                             Heikkinen, Miss. Laina  female  26.0      0   

   Parch            Ticket     Fare Cabin Embarked  
0      0         A/5 21171   7.2500   NaN        S  
1      0          PC 17599  71.2833   C85        C  
2      0  STON/O2. 3101282   7.9250   NaN        S

とりあえずdescribe

train.describe()

describeから分かること

  • Ageに欠損値が入っている
  • Name,Ticketの処理が大変そう
  • Cabin numberが意味的に不明、欠損値の割合がかなり高い

もっと詳しく、欠損値について見ると

#欠損値の数を調べる
def null_table(df):
    null_val = df.isnull().sum()
    persent = 100*null_val/len(df)
    table = pd.concat([null_val,persent], axis=1)
    table_renamed = table.rename(
    columns={0:"欠損値", 1:"%"})
    return table_renamed

null_table(train)


Age, Cabin, Embarkedに欠損値が入っていることが分かります。

今回はAge,  Embarkedを埋めていきます。

それでは、本題に入って行きます!

pandasで欠損値を埋める

pandasで欠損値を埋めるにはfillnaを使います。

まずは、簡単なAgeから

train["Age"] = train["Age"].fillna(train["Age"].mean())

fillnaの中にNaNと置き換えたい値を代入します。

今回は、平均値を代入してみました。

ちなみに、inplace=Trueを指定すると元のオブジェクト自体が変更されるようになります。

つまり、

train["Age"].fillna(train["Age"].mean(),inplace=True)

としても、上と同じ結果になります。

Embarkedの補間

Embarked(出発港)は数値ではないので、少し考えます。

今回は単純に最も出てくる出発港で置換をしてあげようと思います。

train.groupby("Embarked").Embarked.count().sort_values()
Embarked
Q     77
C    168
S    644
Name: Embarked, dtype: int64

“S”が最も多いことが分かったので、先ほどと同様に

train["Embarked"] = train["Embarked"].fillna("S")

とします。

これで、欠損値の補間は完了です!

念のために確認しときます!

ちゃんとできていますね!

 

 

 

 

オススメのプログラミングスクールをご紹介

タイピングもままならない完全にプログラミング初心者から

アホいぶきんぐ
アホいぶきんぐ
プログラミングってどこの国の言語なの~?

たった二ヶ月で

いぶきんぐ
いぶきんぐ
え!?人工知能めっちゃ簡単にできるじゃん!

応用も簡単にできる…!!

という状態になるまで、一気に成長させてくれたオススメのプログラミングスクールをご紹介します!

テックアカデミーのPython+AIコースを受講した僕が本音のレビュー・割引あり! というプログラミング完全初心者だった僕が Tech Academy(テックアカデミー)のPython×AIコース を二ヶ月間...

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です