データに欠損(NaN)が含まれているかを確認する方法

Python

結論

  • pandasのisnull関数を使う
  • isnull().sum()を用いると項目ごとの欠損数の合計を出せる

経緯

機械学習のために用意、取得した学習データに欠損(NaN)があり、精度の低い機械学習モデルしか作れませんでした。

数百行程度の学習データであれば、エディタなどで学習データを開き、目視確認することで欠損(NaN)の有無を確認することはできますが、数千、数万行の学習データの場合、目視確認には手間が掛かります。

欠損有無の確認方法、もし欠損がある場合に項目ごとに欠損数を確認する方法をまとめました。

確認方法の手順

下記のコードで各項目の欠損の有無を確認することができます。

import pandas as pd
df = pd.read_csv('./13101_20201_20204.csv', encoding='cp932')
display(df.isnull())

実行結果

 No 種類 地域 市区町村コード 都道府県名 ... 建ぺい率(%) 容積率(%) 取引時点 改装 取引の事情等
0 False False True False False ... False False False False True
1 False False True False False ... False False False False True
2 False False True False False ... False False False False True
3 False False True False False ... False False False False True
4 False False True False False ... False False False True True
~省略~

欠損している場合はTrue、欠損していない場合はFalse、で表示される

 

下記のコードで各項目の欠損数を確認することができます。
isunull関数とsum関数を組み合わせて実行すると、各項目の欠損数を表示できます。

import pandas as pd
df = pd.read_csv('./13101_20201_20204.csv', encoding='cp932')
display(df.isnull().sum())

実行結果

No 0
種類 0
地域 230
市区町村コード 0
都道府県名 0
市区町村名 0
地区名 0
最寄駅:名称 0
最寄駅:距離(分) 1
取引価格(総額) 0
坪単価 267
間取り 66
~省略~

欠損している場合は欠損数、欠損していない場合は0、で表示される

 

コメント

タイトルとURLをコピーしました