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