如何预处理具有太多NAN值的列?

时间:2018-10-28 12:54:37

标签: python pandas csv machine-learning nan

我有一个形状为(596000, 58)的训练数据,下面的图像使用train.isnull().sum()具有某些特征与特征/行中“ NAN”的数量。

考虑到每个功能具有同等的重要性,并且是分类值我应该删除列cat6和cat8吗?,因为cat6 411792/596000是NaN,cat8则是266928 / 596000是NaN。

有没有办法处理这种情况?还是我必须同时删除两列?


输入[12]:train.isnull().sum()

输出[12]:

enter image description here

2 个答案:

答案 0 :(得分:1)

对于分类特征,几乎没有有价值的可能策略:

  • 删除功能;
  • NaN 值设置此功能的最常用值;
  • NaN 值设置
  • 设置新类(例如, nan_value );
  • 最复杂的方法-创建一个单独的模型来预测当前功能的缺失值;

最合适的是什么?深入了解您的数据。建立一个简单的基准模型并尝试所有方法。那应该有助于回答您的问题。

看来您的情况是对,cat6和cat8功能对您没有用,但是您仍然需要对这个问题进行简短的调查。

答案 1 :(得分:0)

最好同时删除cat6cat8。 当您有500k值时,假设上述所有值都是分类的,那么您可以将其他特征的其余NaN值设为new category