欠損データ処理の手法
メニューを表示するにはスワイプしてください
実際のデータセットを扱う際には、分析やモデルのパフォーマンスを妨げる欠損値に頻繁に遭遇します。欠損データの処理は、データクリーニングにおける重要なステップです。欠損値に対処するためには、いくつかの戦略があります。最も単純な方法は、削除法を用いて欠損値を含む行や列を削除することです。この方法は完全なデータのみを使用できる一方で、データセットのサイズが小さくなり、貴重な情報が失われる可能性があります。
もう一つ一般的な手法は、定数で欠損値を埋めることです。例えば、ゼロや空文字列などを用いる方法で、カテゴリカル列やインジケーター列に有効です。ただし、定数が欠損データの本質を正確に表していない場合、バイアスが生じる可能性があります。
より精緻な方法としては、統計的補完があります。これは、利用可能なデータから計算した統計量で欠損値を置き換える方法です。数値列の場合、列の平均値や中央値を使用することが一般的です。平均値は正規分布(対称分布)の列に適しており、中央値は外れ値が存在する場合や分布が歪んでいる場合により堅牢です。
12345678910111213141516171819202122232425262728import pandas as pd # Create a sample DataFrame with missing values data = { "age": [25, None, 30, 22, None], "income": [50000, 60000, None, 52000, 58000] } df = pd.DataFrame(data) # Drop rows with any missing values df_dropped = df.dropna() # Fill missing values with a constant (e.g., 0) df_filled_constant = df.fillna(0) # Impute missing values in 'age' column with the mean df_filled_mean = df.copy() df_filled_mean["age"] = df_filled_mean["age"].fillna(df_filled_mean["age"].mean()) print("Original DataFrame:") print(df) print("\nAfter dropna():") print(df_dropped) print("\nAfter fillna(0):") print(df_filled_constant) print("\nAfter fillna() with mean for 'age':") print(df_filled_mean)
1. pandasのdropna()メソッドはデフォルトで何をしますか?
2. 正規分布を持つ数値列に最適な補完方法はどれか?
すべて明確でしたか?
フィードバックありがとうございます!
セクション 2. 章 1
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください
セクション 2. 章 1