Pandasで中央値補完を実践!欠損データ対策の基本を学ぼう

はじめに

データ分析を行う上で、欠損データは避けて通れない問題の1つです。欠損データが含まれているまま分析を行うと、正確な結果を得ることができません。そこで、欠損データを補完することが必要となります。本記事では、その中でも中央値補完について解説します。

欠損データ対策の重要性

欠損データは、データ分析において多くの問題を引き起こします。例えば、欠損データが多い場合、分析結果が不正確になる可能性が高くなります。また、欠損データが含まれるまま分析を行うと、データのばらつきが大きくなり、分析結果の信頼性が低下します。

そのため、欠損データを補完することが重要です。補完方法には、平均値補完や最頻値補完などがありますが、本記事では中央値補完について解説します。

中央値補完とは何か

中央値補完は、欠損している値を、その列の中央値で補完する方法です。中央値とは、データを昇順または降順に並べた場合に、中央に位置する値のことです。中央値補完は、データの分布が歪んでいる場合にも有効であり、外れ値の影響を受けにくいという特徴があります。

Pandasで中央値補完を行う基本的な方法

Pandasは、Pythonでデータ分析を行うためのライブラリであり、中央値補完も簡単に行うことができます。以下は、中央値補完を行う基本的な方法です。

import pandas as pd

# データの読み込み
df = pd.read_csv("data.csv")

# 欠損値の確認
print(df.isnull().sum())

# 欠損値の中央値で補完
df.fillna(df.median(), inplace=True)

# 補完後の欠損値の確認
print(df.isnull().sum())

上記のコードでは、Pandasのread_csv関数を使ってデータを読み込み、isnull関数を使って欠損値の数を確認しています。そして、fillna関数を使って、欠損値を中央値で補完しています。

補完後に再度isnull関数を使って欠損値の数を確認することで、補完が正しく行われたかどうかを確認することができます。

中央値補完を適用する際の注意点

中央値補完を適用する際には、いくつかの注意点があります。

  • 欠損値が多い場合、中央値補完では正確な値を得ることができない可能性があります。
  • 中央値が偏っている場合、中央値補完では正確な値を得ることができない可能性があります。この場合は、平均値補完など他の補完方法を検討する必要があります。

他の補完方法との比較: 平均値補完、最頻値補完

中央値補完以外にも、平均値補完や最頻値補完などの補完方法があります。それぞれの特徴を比較してみましょう。

  • 平均値補完:欠損値をその列の平均値で補完する方法。中央値補完よりも外れ値の影響を受けやすい。
  • 最頻値補完:欠損値をその列の最頻値で補完する方法。カテゴリカルデータに対して有効であるが、連続的なデータに対しては適用しづらい。

中央値補完を用いたデータ分析の実例

中央値補完を用いたデータ分析の実例として、あるオンラインストアの購買データを例にして考えてみましょう。

まずは、データを読み込んでみます。

import pandas as pd

# データの読み込み
df = pd.read_csv("data.csv")

# データの先頭5行を表示
print(df.head())

読み込んだデータの先頭5行を表示すると、以下のようになります。

   user_id  age  gender  purchase_amount
0        1   25    male             1000
1        2   32  female             2000
2        3   54    male              500
3        4   82    male             1200
4        5   13  female              NaN

このデータには、purchase_amount列に1つの欠損値が含まれています。そこで、中央値補完を適用してみます。

# 欠損値の確認
print(df.isnull().sum())

# 欠損値の中央値で補完
df.fillna(df.median(), inplace=True)

# 補完後の欠損値の確認
print(df.isnull().sum())

中央値補完を適用した結果、欠損値が補完されたことが確認できます。

   user_id  age  gender  purchase_amount
0        1   25    male             1000
1        2   32  female             2000
2        3   54    male              500
3        4   82    male             1200
4        5   13  female             1000

欠損値が補完された後、購買金額の平均値や中央値を計算することで、補完前と補完後のデータの違いを確認することができます。

# 補完前の購買金額の平均値
print(df["purchase_amount"].mean())

# 補完後の購買金額の平均値
print(df["purchase_amount"].fillna(df["purchase_amount"].median()).mean())

# 補完前の購買金額の中央値
print(df["purchase_amount"].median())

# 補完後の購買金額の中央値
print(df["purchase_amount"].fillna(df["purchase_amount"].median()).median())

上記のコードを実行すると、補完前と補完後の平均値や中央値がほぼ同じであることが確認できます。

まとめ

本記事では、Pandasを使った中央値補完の基本的な方法について解説しました。また、中央値補完を適用する際の注意点や、他の補完方法との比較についても解説しました。

欠損データは、データ分析において大きな問題となるため、正確なデータ分析を行うためには欠損データの補完が必要です。中央値補完は、データの分布が歪んでいる場合にも有効であり、データ分析において広く使われています。

本記事を参考に、実際のデータ分析に役立てていただければ幸いです。