第4章 欠損値
1 欠損値
データに不備があり、値が存在しないことがあります。それが欠損値です。
欠損値のあるデータを挿入してみましょう。
df.loc["渡辺"] = ['A', '男', 90, None, 80, None]
df
欠損値があるかどうかは以下で分かります。
df.isnull().sum()
欠損値がある行を削除するには以下のようにします。
df.dropna()
しかし、通常は欠損値があっても削除することはせず、別の値で埋めて統計処理をすることが多いです。
例えば、0で欠損値を埋めるには以下のようにします。
df2 = df.fillna(0)
df2
平均値で欠損値を埋めるには以下のようにします。
df2["算数"] = df["算数"].fillna(df["算数"].mean())
df2["社会"] = df["社会"].fillna(df["社会"].mean())
df2
気温など連続して変換する値の場合、平均値で埋めてしまうと流れがおかしくなります。このような場合、前の値で埋めるという方法があります。
df2 = df.fillna(method='ffill')
df2
2 置換
値が存在しない以外にもおかしいデータがあった場合、データを置換する必要があります。
置換は {"列名": {置換前:置換後}} で指定します。
# 80を800に置換
df.replace({"国語":{80:800}})
欠損値を置換で埋めることも可能です。
df = df.replace({"算数":{None:80}})
df = df.replace({"社会":{None:80}})
df