AIプログラミング

pandasで欠損値NaNを削除置換する

更新日:

pandasで欠損値NaNを削除、置換(最小、平均、最大)する

医療用データの未検査項目やアンケート調査データの無回答項目のように、欠損値が存在するデータは多数存在します。機械学習を行う上でも欠損値が全くないというデータはまねで何かしらの項目には欠損値が存在することがよくあります。それではその欠損値はどのようにしたらいいのでしょうか?簡単なケースとしては欠損値が入っているデータそのものを削除するという方法があります。または欠損値のデータを何かしらの値で置き換えるという方法もあります。

今回は欠損値についての対処方法について説明します。

ソースコード

ソースコードの詳細

各種ライブラリのインポート

各種ライブラリのインポートを行います。

欠損値が入っているデータフレームの作成

1.pandasデータ

今回のお試し用として欠損値のデータを作成しています。5×5の表を作成し一部のデータに対して欠損値のデータを作成しています。欠損値はnp.nanを指定することで作成することができます。欠損値は"NaN"という文字で表現されています。

欠損値を確認する(False:欠損以外、True:欠損)

2.pandasデータ

先ほどの表でも欠損値を確認することができますが、欠損値があるかどうかをTrue,Falseの形式で見ることもできます。isnull関数を使用することで、欠損値だった場合はTrue,欠損値ではない場合はFalseが返却されます。

欠損値を確認する(False:欠損以外、True:欠損)(列指定)

列単位で指定することもできます。列単位で指定してsnull関数を使用することで、欠損値だった場合はTrue,欠損値ではない場合はFalseが返却されます。

どこかに欠損値が一つ以上入っている行を削除する

3.pandasデータ

dropnaを指定することで、欠損値が入っている行、または列全体を削除することができます。dropnaの引数として,axis=0(行指定)、how='any'(どれか)を指定しています。この意味は行のどれかに欠損値が入っていたら削除するという意味となります。

どこかに欠損値が一つ以上入っている例を削除する

4.pandasデータ

dropnaを指定することで、欠損値が入っている行、または列全体を削除することができます。dropnaの引数として,axis=1(列指定)、how='any'(どれか)を指定しています。この意味は列のどれかに欠損値が入っていたら削除するという意味となります。

欠損値を0で置き換える

5.pandasデータ

欠損値を削除するのではなく、何かしらの値で置き換えることにします。fillna関数を使用することで欠損値を置き換えることができます。ここでは0を指定しているため欠損値は0で置き換えられることになります。

欠損値を最小値で置き換える

6.pandasデータ

同様に最小値で置き換えてみましょう。min関数を使用することで最小値に置き換えることができます。

欠損値を平均で置き換える

7.pandasデータ

同様に平均値で置き換えてみましょう。mean関数を使用することで平均値に置き換えることができます。

欠損値を最大値で置き換える

8.pandasデータ

同様に最大値で置き換えてみましょう。max関数を使用することで最大値に置き換えることができます。

-AIプログラミング
-, ,

Copyright© AI人工知能テクノロジー , 2019 All Rights Reserved.