PythonのPandasで欠損値が含まれているか確認する方法

Python,イメージ

AI実装検定のご案内

Pandasで「欠損値(NaNやNone)が含まれているかどうか確認する方法」はいくつかあり、用途によって使い分けるのがポイントです。

ここでは基本的なメソッドから、実務で便利な応用まで順を追って詳しく解説します。

目次

欠損値を確認する基本メソッド

isnull() / isna()

  • 役割: DataFrameやSeriesに対して「欠損値かどうか」を真偽値(True/False)で返す。
  • isnull()isna() は完全に同じ動作です。
import pandas as pd
import numpy as np

df = pd.DataFrame({
    "A": [1, 2, np.nan],
    "B": ["x", None, "z"]
})

print(df.isnull())

欠損値の数を確認する

.sum() を組み合わせる

各列ごとに何個の欠損値があるか数えることができます。

df.isnull().sum()

列単位での欠損状況がすぐわかります。

全体の欠損数を確認

df.isnull().sum().sum()

データ全体で「いくつの欠損値があるか」を確認可能。

欠損値の有無を確認する

DataFrame全体に1つでもNaNがあるか?

df.isnull().values.any()
# True → 1つでも欠損がある
# False → 欠損なし

列ごとに「欠損が存在するかどうか」だけ確認

df.isnull().any()

欠損値を含む行・列を確認する

欠損値を含む行だけ抽出

df[df.isnull().any(axis=1)]

axis=1 は「行ごとに判定」という意味。

欠損がある行だけ取り出せます。

欠損値を含む列名を取得

missing_cols = df.columns[df.isnull().any()].tolist()
print(missing_cols)
# ['A', 'B']

実務で便利な方法

info() を使ってざっくり確認

df.info()

各列の「非欠損値数 (Non-Null Count)」を表示してくれるため、どの列に欠損があるか直感的に分かります。

pd.isna() の直接利用

pd.isna(df["A"])

Series単位で欠損確認する場合に便利。

ビジュアルで欠損値を確認(応用)

もし可視化したい場合は、missingno ライブラリが便利です。

import missingno as msno
msno.matrix(df)

欠損がどの部分に集中しているか、グラフィクで把握できます。

まとめ

  • 欠損位置を確認isnull() / isna()
  • 列ごとの欠損数を集計df.isnull().sum()
  • 全体に欠損があるかだけ確認df.isnull().values.any()
  • infoでざっくり確認df.info()
  • ビジュアルで確認missingno

以上、PythonのPandasで欠損値が含まれているか確認する方法についてでした。

最後までお読みいただき、ありがとうございました。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次