Pandas DataFrame 内の値が NaN かどうかを確認する方法 質問する

Pandas DataFrame 内の値が NaN かどうかを確認する方法 質問する

pandas DataFrame に NaN 値があるかどうかを確認するにはどうすればよいですか?

知っていますpd.isnanが、ブール値のDataFrameを返します。また、この郵便受けしかし、それは私の質問に正確に答えているわけではありません。

ベストアンサー1

ジェイウィルナーの回答はまさにその通りです。私の経験では、フラット配列を合計する方が(不思議なことに)カウントするよりも速いので、もっと速いオプションがあるかどうか調べていました。次のコードはより速いようです。

df.isnull().values.any()

ここに画像の説明を入力してください

import numpy as np
import pandas as pd
import perfplot


def setup(n):
    df = pd.DataFrame(np.random.randn(n))
    df[df > 0.9] = np.nan
    return df


def isnull_any(df):
    return df.isnull().any()


def isnull_values_sum(df):
    return df.isnull().values.sum() > 0


def isnull_sum(df):
    return df.isnull().sum() > 0


def isnull_values_any(df):
    return df.isnull().values.any()


perfplot.save(
    "out.png",
    setup=setup,
    kernels=[isnull_any, isnull_values_sum, isnull_sum, isnull_values_any],
    n_range=[2 ** k for k in range(25)],
)

df.isnull().sum().sum()少し遅いですが、もちろん、 の数という追加情報がありますNaNs

おすすめ記事