Pythonでデータ分析を行う際、欠損値(null値)の扱いは重要な課題となります。欠損値の扱い方が変わるだけで分析の結果が変化する場合もあります。今回はPythonでnull値を削除する方法について解説します。
Pandasのfillnaとdropnaを使う
Pandasライブラリには欠損値を扱うための関数が用意されています。具体的にはfillna
とdropna
です。
欠損値の確認
まずは各列に欠損値があるかどうかを知りたい場合、isnull
関数とany
関数の組み合わせとnotnull
関数とall
関数の組み合わせがあります。
import pandas as pd
import numpy as np
data = np.random.randn(5,5)
data[1,3] = np.nan # 欠損値を入れる
data[2,0] = np.nan # 欠損値2つ目
df = pd.DataFrame(data, columns=['A','B','C','D','E']) # DataFrameの作成
print(df.isnull().any()) # 欠損値のある列に True が返されます
print(df.notnull().all()) # 欠損値のある列に False が返されます
欠損値の削除
欠損値を削除するにはdropna
関数を使います。この関数はNaN値 (欠損値)をドロップ (除外)します。
df = pd.Series([1, 2, 3, np.nan, 0, None], index=['A','B','C','D','E','F']) # 欠損値を含むデータを作成
print(df.dropna()) # NaN値を含むところが切り落とされる結果になります
DataFrameだとデフォルトの設定でdropna
を適用すると欠損値を1つでも含む行は削除されます。
df_2 = pd.DataFrame({'A':[0, 1, np.nan, 2],'B':[np.nan,2, 3, 4]})
print(df_2.dropna()) # 0,2行目が削除される
以上がPythonでnull値を削除する基本的な方法です。データ分析を行う際には、これらの方法を活用してデータのクレンジングを行いましょう。.