どうもニコイチです。前回データについて把握することができました。しかし、データ分析を始めると、最初につまづきやすいポイントがいくつかあります。その中でも「欠損値の扱い」は重要でありながら、難しく感じる部分です。この記事では、初心者の方がスムーズに理解し、実践できるよう、欠損値の確認と処理方法について分かりやすく解説します。
【データ分析する前に絶対マスター】pythonでデータを分析する前に絶対に行うべき「shape」と「info」の…
PythonのPandasライブラリには、データの概要を確認するのに役立つ便利な機能がたくさんあります。その中でも特によく使われるのが、shape属性とinfo()メソッドです。こ…
全編はこちらから
目次
1. 欠損値とは?
欠損値とは、本来得られるべきデータが欠落している状態のことを指します。
具体例
- アンケートの未回答項目(例: 性別が未記入)
- センサーや計測器の不具合で得られなかったデータ
表形式のデータでの欠損値の例
出身 | 年齢 | 性別 |
---|---|---|
神奈川 | 31 | 女 |
東京 | NaN | 男 |
大阪 | 46 | 女 |
北海道 | 18 | NaN |
上記の例では、空欄やNaN
(Not a Number)が欠損値です。
2. なぜ欠損値を処理する必要があるのか?
欠損値を放置すると、以下のような問題が発生します。
- データ分析やモデル構築時にエラーが発生する。
- 正しい分析結果が得られない。
3. 欠損値の確認方法
Pandasを使うと、データ内に欠損値が含まれているかを簡単に確認できます。
サンプルコード
まず、CSVファイルを読み込んで、欠損値を確認してみましょう。
import pandas as pd
# CSVファイルの読み込み
data = pd.read_csv("宿泊価格について_demo.csv")
# 欠損値の確認
print(data.isnull().sum())
このコードでは、isnull()
関数を使って欠損値をTrueとしてカウントし、sum()
で各列ごとの欠損値の数を出力します。
4. 欠損値の種類
欠損値には2種類あります。
- 明確な欠損値
NaN
や空白など、Pandasが自動で判別できる欠損値。
- あいまいな欠損値
?
や--
のように、人間がデータ収集時に加えた特別な値。Pandasでは自動判別できないため、事前に把握しておく必要があります。
この記事では、初心者向けに1の「明確な欠損値」を中心に解説します。
5. 欠損値の処理方法
欠損値を処理する方法は大きく2つに分けられます。
方法1: 欠損値を削除する
データ量に余裕がある場合、欠損値を含む行を削除するのが最も簡単な方法です。
サンプルコード
# 欠損値を含む行を削除
data_cleaned = data.dropna()
# 確認
print(data_cleaned)
方法2: 欠損値を他の値で補間する
データを削除したくない場合は、欠損値を平均値や最頻値で補間します。
サンプルコード
# 数値型の欠損値を平均値で補間
data['価格'] = data['価格'].fillna(data['価格'].mean())
# 質的データ(カテゴリ型)の欠損値を最頻値で補間
data['部屋タイプ'] = data['部屋タイプ'].fillna(data['部屋タイプ'].mode()[0])
# 確認
print(data)
6. 実践: 実際に「宿泊価格について_demo.csv」で試してみよう
以下は、実際のデータで欠損値を確認し、処理する例です。
サンプルコード
# CSV読み込み
data = pd.read_csv("宿泊価格について_demo.csv")
# 欠損値の確認
print("欠損値の確認:\n", data.isnull().sum())
# 欠損値を削除する例
data_dropped = data.dropna()
# 平均値で補間する例(価格列)
data['価格'] = data['価格'].fillna(data['価格'].mean())
# 処理後のデータ確認
print("処理後のデータ:\n", data)
7. まとめ
- 欠損値とは、データの一部が欠落している状態を指します。
- 欠損値を放置すると、分析やモデル構築に影響が出ます。
- 欠損値は
isnull()
とsum()
を使って簡単に確認できます。 - 処理方法は「削除する」か「補間する」の2つがあります。
欠損値の扱いを正しく行うことで、より正確なデータ分析が可能になります。Pythonでデータ分析を始める第一歩として、この記事の内容をぜひ実践してみてください!
コメント