这是我的数据帧头。我正在尝试删除列“Type2”中的NaN值,但是我不确定如何决定是删除包含NaN值的整个列,还是删除包含NaN值的行。我应该如何决定使用哪种方法来删除NaN值?对于一般的数据集,是否有特定的阈值来确定是删除行还是删除整个列?我的最终目标是在这个数据集上运行一个机器学习算法来预测一个口袋妖怪是否具有传奇色彩。谢谢
# Name Type 1 Type 2 Total HP Attack Defense Sp. Atk Sp. Def Speed Generation Legendary
2 3 Venusaur Grass Poison 525 80 82 83 100 100 80 1 False
3 3 VenusaurMega Venusaur Grass Poison 625 80 100 123 122 120 80 1 False
5 5 Charmeleon Fire NaN 405 58 64 58 80 65 80 1 False
9 7 Squirtle Water NaN 314 44 48 65 50 64 43 1 False
10 8 Wartortle Water NaN 405 59 63 80 65 80 58 1 False
15 12 Butterfree Bug Flying 395 60 45 50 90 80 70 1 False
发布于 2018-07-25 05:17:59
是的,我们可以为此设定一个门槛。如果所有列中都有NaN值,最好使用:
data.dropna(axis=0,inplace=True)
这将删除所有包含NAN的hows,如果您使用axis=1将删除所有具有NAN值的列。
你需要考虑的一件事是,一列中有多少百分比的值是NAN,如果超过70%的NAN值只在一列中,而我没有其他方法来完成这一点,我就删除这一列。如果NaN值分布在列中,最好删除行。
我希望这对你有帮助。
发布于 2018-07-31 00:32:34
在这种情况下,我认为最好的方法是将类型分类,并使类型列中的NaN也是一个类别。这将使您的机器学习模型更加健壮。
https://stackoverflow.com/questions/51507598
复制相似问题