Pythonのデータ分析ライブラリであるpandasを使用して、データ内の欠損値(NaN)を見つける方法について説明します。
pandasのisnaとnotna
pandasには、データフレーム内の欠損値を検出するためのisna
とnotna
という2つの関数があります。これらの関数は、データフレームの各要素が欠損値であるかどうかを判定し、同じサイズのブール値(TrueまたはFalse)を持つオブジェクトを返します。
import pandas as pd
import numpy as np
# データフレームを作成
df = pd.DataFrame({
'A': [1, 2, np.nan],
'B': [4, np.nan, 6],
'C': [7, 8, 9]
})
print(df.isna())
上記のコードを実行すると、以下のような出力が得られます。
A B C
0 False False False
1 False True False
2 True False False
この出力では、True
は対応する位置に欠損値が存在することを、False
は欠損値が存在しないことを示しています。
欠損値の扱い
データ分析を行う際、欠損値の扱いは重要な問題となります。欠損値は、データが何らかの理由で記録されなかった場合に発生します。CSVファイルなどでは、欠損値は空欄や”N/A”という文字列などで表されることがあります。
pandasでは、欠損値は浮動小数点数のNaN(Not a Number、非数)で表されます。また、pandasではNoneやNaT(Not a Time)も欠損値として扱われます。
注意点
欠損値(NaN)同士の比較は、比較演算子==
ではなく、pandas.isna()
のような専用の関数を使用する必要があります。これは、NaN同士の比較はFalseとなるように浮動小数点演算の規格(IEEE754)で定義されているためです。
import numpy as np
print(np.nan == np.nan) # False
以上、Pythonのpandasを使用して、データ内の欠損値(NaN)を見つける方法について説明しました。これらの知識を活用して、データ分析の精度を向上させましょう。.