【python図解】Pandas DataFrameで欠損値の有無を確認する方法を解説!

Pythonでこんな悩みはありませんか?

「Pythonで欠損値(NaN)があるか確認したい、、しかしやり方がわからない」
「Pythonで欠損値(NaN)があるか確認したが、カラム数が多くてどのカラムに欠損値が含まれているのかわからない」

こんなお悩みを解決します。
結論をお話しするとpythonのisnull()メソッドをうまく活用することで欠損値の確認ができます。

今回の記事では下記の内容について記載しています。

・そもそも欠損値(NaN)とは
・なぜ欠損値の有無を確認する必要があるのか
・欠損値の有無の確認方法

それでは解説します。

そもそも欠損値とは

 
「データが空白のところ」を欠損値という。NaNと表示される。
そのためNaNと表示されているところにはデータがない。

なぜ欠損値の有無を確認する必要があるのか

機械学習では欠損値(NaN)が含まれたデータをそのまま計算できない。
そのため、データの欠損値(NaN)は計算前に必ず処理する必要があります。

欠損値の有無を確認する方法

 
今回は「タイタニック予測問題のデータ」を使って解説します。

「タイタニック予測問題」のtrainデータをdfとして読み込みます。dfは12個のカラムから構成され、891個のデータが格納されている。

df.isnull.sum() で欠損値の有無を確認できる
欠損していないカラムは0、欠損値のあるカラムは個数が表示される。
今回のdfでは、Ageに177個、Cabinに687個、Embarkedに2個、データの欠損(NaN)があることがわかる。

df.isnull( ).sum( )

df.isnull.sum()[df.isnull.sum() > 0] で欠損値のあるカラムのみを抽出できる

df.isnull().sum() > 0 でbool型にできます。

df.isnull().sum() > 0

 

bool型を活用して、欠損値が1個以上あるカラムを抽出する場合は下記のように書けばいい。

df.isnull.sum()[df.isnull.sum() > 0]

特にカラム数が多いときは、df.isnull().sum()では表示しきれないので、下のように欠損値のあるカラムのみを抽出するのがオススメです。
欠損値がない場合は表示されないので、欠損値処理が完了したかどうかの確認にも使えます。

欠損値があることを確認した後の実施事項については下記の通り。

・欠損値がある行・列を削除
・欠損値を補填

欠損値がある行・列を削除
「欠損値がある行・列の削除」下記記事で詳細に解説していますので、よろしければご覧ください。
https://nomuotorinko.com/pandas_dropna/

欠損値の補填
「欠損値の補填」については下記記事で詳細に解説していますので、よろしければご覧ください。
https://nomuotorinko.com/pandas_fillna/

欠損値があるか確認して、「欠損値がある行・列を削除」もしくは「欠損値の補填」ができれば、欠損値の処理は完了となります。
pythonを活用したデータサイエンスでは欠損値処理はマストの内容なので是非本記事を通してマスターしていただければと思います。

本記事はここまでです。最後まで読んでいただきありがとうございました。
今回の記事が皆さんのpythonの勉強に少しでも役立つことを心より願っています。

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