Pythonで欠損値を処理する

データ分析や機械学習を行う際に、欠損値の存在は避けて通れない課題です。欠損値とは、本来入力されるべきデータが何らかの理由で存在しない状態を指します。欠損値を適切に処理しないまま分析を進めると、計算エラーや分析結果の精度低下につながる可能性があります。

Pythonでは、Pandasライブラリを利用することで欠損値の確認や削除、補完を簡単に実施できます。本記事では、初心者向けに欠損値の基本的な処理方法を解説します。

欠損値を含むデータを作成する

まずは欠損値を含むサンプルデータを作成します。

import pandas as pd
import numpy as np

df = pd.DataFrame({
    "名前": ["田中", "佐藤", "鈴木", "高橋"],
    "年齢": [25, np.nan, 30, 28],
    "売上": [1000, 2000, np.nan, 1500]
})

print(df)

実行すると、一部のデータが「NaN」として表示されます。これが欠損値です。

欠損値を確認する

どこに欠損値が存在するかを確認するには、isnull()を使用します。

print(df.isnull())

欠損値の件数を確認したい場合は以下のように記述します。

print(df.isnull().sum())

列ごとの欠損値件数を簡単に集計できます。

欠損値を削除する

欠損値を含む行を削除する場合はdropna()を使用します。

df_drop = df.dropna()

print(df_drop)

欠損値を含むレコードを除外して分析したい場合に便利です。

欠損値を補完する

欠損値を特定の値で置き換えるにはfillna()を利用します。

df_fill = df.fillna(0)

print(df_fill)

平均値で補完する場合は次のように記述できます。

df["年齢"] = df["年齢"].fillna(df["年齢"].mean())

print(df)

欠損値の補完方法は分析内容によって異なりますが、平均値や中央値を利用するケースが一般的です。

まとめ

PythonではPandasを利用することで、欠損値の確認、削除、補完を簡単に実施できます。実際の業務データでは欠損値が含まれていることが多いため、分析前の前処理として欠損値処理を習得しておくことが重要です。まずはisnull()、dropna()、fillna()の使い方を覚え、データ分析の基礎を身につけましょう。