【定番の前処理】DataFrameから欠損が多すぎる列を自動削除

スポンサーリンク
python Python

欠損の割合が大きすぎるレコードは特徴量として使えないことが多いです。

今回は一定の割合で欠損が多いカラムを削除するコードの紹介です

Pythonコード

# Nanだけでなく無限大,マイナス無限大をNanに直し、欠損とカウントさせる
df = df.replace([np.inf, -np.inf], np.nan)

# 各列ごとに、8割欠損がある列を削除
for col in df.columns:
    # nanになっている行数をカウント
    nans = df[col].isnull().sum()

    # nan行数を全体の行数で割り、8割欠損している列(col)にのみ処理
    if nans / len(df) > 0.8: 
        # 8割欠損列を削除
        print("drop", col)
        df.drop(col, axis=1, inplace=True)

0.8の部分は適宜変更してください。

それでは!

コメント

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