为什么 isna()/isnull() 函数显示的值与 value_counts() 不同?

数据挖掘 Python 熊猫 缺失数据
2022-03-02 23:58:05

我对机器学习/数据科学很陌生,所以我从这里开始做我的第一个 Kaggle 竞赛问题:https ://www.kaggle.com/c/house-prices-advanced-regression-techniques

我正在清理训练数据集并用模式值填充一些分类特征,过了一段时间我注意到一些非常奇怪的东西。我用模式填充了“MasVnrType”列的缺失值,结果发现它用无值填充了所有这些值,即使 isna().sum() 仅显示 8 个缺失值。是否有一些我缺乏的理解?这就是问题所在

1个回答

默认情况下,value_counts具有dropna=True表示None值不显示在值计数中的参数。

试试下面的代码。您应该看到“真实”None值的计数。应该有一个计数8

df['MasVnrType'].value_counts(dropna=False)

你为什么看None 864这可能是因为 None 值实际上是"None". 他们是strings由于它们是strings它们不计入isna(),它只计算实际None值。

如何解决?清理数据时,不要添加"None"string,而是添加None