给定一个pandas数据框架,其中包含可能分散在这里和那里的NaN值:

问:如何确定哪些列包含NaN值?特别是,我能得到包含nan的列名的列表吗?


当前回答

Features_with_na =[feature用于数据帧中的特征。列if dataframe[features].isnull().sum()>0]

对于features_with_na中的feature: Print (feature, np.round(dataframe[feature].isnull().mean(), 4), '%缺失值') 打印(features_with_na)

它将为dataframe中的每一列提供缺失值的%

其他回答

df.columns[df.isnull().any()].tolist()

它将返回包含空行的列的名称

df.isna()返回NaN值为True,其余为False。所以,做:

.any df.isna () ()

将返回True的任何列有NaN, False的其余

Features_with_na =[feature用于数据帧中的特征。列if dataframe[features].isnull().sum()>0]

对于features_with_na中的feature: Print (feature, np.round(dataframe[feature].isnull().mean(), 4), '%缺失值') 打印(features_with_na)

它将为dataframe中的每一列提供缺失值的%

如果您希望查找包含NaN值的列并获得列名列表,则该代码可以工作。

na_names = df.isnull().any()
list(na_names.where(na_names == True).dropna().index)

如果要查找值都是nan的列,可以将any替换为all。

这对我很有效,

1. 用于获取至少有一个空值的列。(列名称)

data.columns[data.isnull().any()]

2. 用于获取具有count的列,且至少有1个空值。

data[data.columns[data.isnull().any()]].isnull().sum()

(可选) 3.获取空计数的百分比。

data[data.columns[data.isnull().any()]].isnull().sum() * 100 / data.shape[0]