给定一个pandas数据框架,其中包含可能分散在这里和那里的NaN值:
问:如何确定哪些列包含NaN值?特别是,我能得到包含nan的列名的列表吗?
给定一个pandas数据框架,其中包含可能分散在这里和那里的NaN值:
问:如何确定哪些列包含NaN值?特别是,我能得到包含nan的列名的列表吗?
当前回答
df.columns[df.isnull().any()].tolist()
它将返回包含空行的列的名称
其他回答
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。
您可以使用df.isnull().sum()。它显示了每个特征的所有列和总nan。
我知道这是一个很好的回答问题,但我想做一个小小的调整。这个答案只返回包含空值的列,并且仍然显示空值的计数。
1-liner:
pd.isnull(df).sum()[pd.isnull(df).sum() > 0]
描述
在每一列中计算空值
null_count_ser = pd.isnull(df).sum()
True|False序列,描述该列是否为空
is_null_ser = null_count_ser > 0
使用T|F系列来过滤那些没有
null_count_ser[is_null_ser]
示例输出
name 5
phone 187
age 644
要查看包含nan的列和包含nan的行:
isnulldf = df.isnull()
columns_containing_nulls = isnulldf.columns[isnulldf.any()]
rows_containing_nulls = df[isnulldf[columns_containing_nulls].any(axis='columns')].index
only_nulls_df = df[columns_containing_nulls].loc[rows_containing_nulls]
print(only_nulls_df)