

実際にデータを収集して、データ分析する際によくある問題として、欠損値の取り扱いがあります。
欠損値(欠測値と同じ)があると、データ分析の手法によっては、実行困難なことがあります。
また、欠損値ができこと自体がデータ収集方法に問題があるかもしれません。
今回は、欠損値のあるデータに対して、欠損値の把握と、欠損値の取り扱いについて、解説していきます。
必両なライブラリをインポート
import seaborn as sns import warnings warnings.filterwarnings('ignore')
データセットを取り込む
original = sns.load_dataset("titanic") original
これは、機械学習やデータ分析の練習用のデータセットとして有名な「Titanic:タイタニック」に関するデータです。seabornからタイタニックのデータセットを読み込んでいます。
オレンジ枠から、891行 ✕ 15列 のデータがあることが確認できます。
オリジナルデータの基本統計量を確認する
original.describe()
たった1行で数値データの基本統計量が確認できます。
列:age、行:count だけ数値が 714です。これは、欠損値があることを意味しています。確認してみましょう。
欠損値の確認
original.isnull()
これで、数値データがある場合は「False」、数値データがない(欠損値)は「True」になります。
これだけでは、よく分からないので、欠損値の個数を確認しましょう。
original.isnull().sum() # 欠損値の個数を確認する
ageに177個、embarkedに2個、deckに688個、embark_townに2個の欠損値があることが確認できました。
列:age、行:count だけ数値が 714であったのは、891 – 177 = 714 という計算からも分かりますね。
欠損値がある場合の対処方法は、いろいろありますが、今回は簡単な補完方法だけを見ていきましょう。
欠損値がある行を削除する
clean_all = original.dropna() # 欠損値のある行を削除 clean_all
オレンジ枠から、182行 ✕ 15列 のデータがあることが確認できます。
このデータは欠損値がまったくないデータなので、分析しやすいです。しかし、かなりの行数のデータが失われましたので、データに偏りがあり、正しいデータとは言い難いかもしれません。
確認のため、欠損値の個数を確認しましょう。
clean_all.isnull().sum() # 欠損値の個数を確認する
すべての変数に欠損値は0であると確認できました。
一応、基本統計量を確認してみましょう。
clean_all.describe()
countは 182で、すべての変数で揃っています。果たして、統計量はどんな変化があったでしょうか。
ためしに「fare」をみてみると、平均値が 32.2(元データ)から78.9(欠損を値除去したデータ)へ、標準偏差が 49.69(元データ)から76.49(欠損を値除去したデータ)へ大きく変化しました。これでは、データの意味が変わってきています。データ分析しても正しい結果が得られないでしょう。
特定の変数に欠損値がある行を削除する
「deck」のデータ欠損が 688と多いので、データの損失が大きいです。では、「age」に欠損がある行のみ削除する方法をみていきましょう。
clean_age=original.dropna(subset=['age']) clean_age
オレンジ枠から、714行 ✕ 15列 のデータがあることが確認できます。データの損失は防げていますね。
clean_age.isnull().sum()
「age」の欠損値が0になりました。
とはいえ、やはり 177のデータが損失したのはもったいないですね。
欠損値を数値で補完してみましょう。
欠損値を平均値で補完する
欠損値の補完方法は、過去記事で書籍を紹介しています。Rですが、非常に参考になります。
original["age"] = original["age"].fillna(original["age"].mean()) original
Nan(欠損値)が、29.699118(ageの平均値)で補完されています。
欠損値を特定の数値で補完する
original["age"] = original["age"].fillna(0) original
コードにある、fillnaの()内の数値で欠損値が補完できます。今回は0を指定していますが、分析目的に沿って、任意の数値を指定してください。
ゼロ知識の初心者がデータサイエンスを完全無料で学習する方法5選
【2021年】ゼロから統計学を独学したい人が読むべき書籍10冊
コメント