Pythonで欠損値の処理 – pandasの使い方と実践例

Pythonでデータ分析をする上で欠損値は避けて通れない問題です。この記事では、pandasを使った欠損値処理の方法について詳しく説明します。欠損値の種類や数の確認方法、欠損値の補完方法など、実践的なテクニックや具体的な実例を紹介します。

こんな人におすすめ

・Pythonでの欠損値処理を知りたい。
・pandasを使った欠損値処理の方法について知りたい
・欠損値の種類と確認方法を知りたい

主なライブラリ

pandas
numpy

本ページで使用するライブラリをインポートするときは以下のコードを使用します。

import pandas as pd
import numpy as np

欠損値とは何か

欠損値とは、データの値が欠けているデータのことを言います。欠損値は、データ収集時のヒューマンエラー、システムエラー、外れ値の扱い方によって生じることがあります。

欠損値の確認方法

pandasでは、isnull()関数やsum()関数を使って欠損値の数を確認できます。

df = pd.DataFrame({'a':[0,1,2, 3,4 ], 'b':[np.NAN, np.NaN, 1, 1, 1]})

print(df)
# a b
# 0 0 NaN
# 1 1 NaN
# 2 2 1.0
# 3 3 1.0
# 4 4 1.0

# Nullの時はTrue、値が設定されているときはFalse
print(df.isnull())
# a b
# 0 False True
# 1 False True
# 2 False False
# 3 False False
# 4 False False

# 列ごとのNull値の数
print(df.isnull().sum())
# a 0
# b 2

欠損値の処理方法

欠損値を処理する方法には、欠損値の削除、欠損値の補完、他の値から欠損値を予測するなどがあります。
欠損値が少数の場合は削除することもできますが、データが偏ってしまうことがあるため注意が必要です。
補完方法としては、平均値、中央値、最頻値、前後の値に基づく補完などがあります。
また、機械学習モデルを使って欠損値を予測する方法もあります。

Titanicデータセットを使った欠損値を平均値で補完する方法

実践例として、Titanicデータセットの欠損値を処理する方法を説明します。具体的には、Age列の欠損値を平均値で補完する方法を紹介します。
以下は、TitanicデータセットのAge列の欠損値を平均値で補完するコードです。

# Age列の欠損値を平均値で補完する
df['Age'].fillna(df['Age'].mean(), inplace=True)

Titanicデータセットを使った欠損値を削除する方法

次にTitanicデータセットの欠損値を削除する場合の方法について説明します。
以下は、TitanicデータセットのAge列の欠損値を削除するコードです。

df = df.dropna(subset=['Age'])

まとめ

この記事では、Pythonのpandasを使った欠損値処理の方法について説明しました。欠損値の種類や数の確認方法、欠損値の補完方法など、実践的なテクニックを紹介しました。データ分析において欠損値処理は欠かせない作業なので、ぜひ参考にしてください。