这是我的数据框的头部。我试图删除“Type 2”列中的NaN值,但我不确定是应该删除包含NaN值的整列,还是删除包含NaN值的行。我该如何决定使用哪种方法来删除NaN值?对于一般的数据集,是否有某个阈值来决定是删除行还是整列?我最终的目标是在这个数据集上运行机器学习算法来预测一只宝可梦是否为传说中的。谢谢
# Name Type 1 Type 2 Total HP Attack Defense Sp. Atk Sp. Def Speed Generation Legendary2 3 Venusaur Grass Poison 525 80 82 83 100 100 80 1 False3 3 VenusaurMega Venusaur Grass Poison 625 80 100 123 122 120 80 1 False5 5 Charmeleon Fire NaN 405 58 64 58 80 65 80 1 False9 7 Squirtle Water NaN 314 44 48 65 50 64 43 1 False10 8 Wartortle Water NaN 405 59 63 80 65 80 58 1 False15 12 Butterfree Bug Flying 395 60 45 50 90 80 70 1 False
回答:
是的,我们可以为此设定一个阈值。如果所有列中都有NaN值,最好使用:
data.dropna(axis=0,inplace=True)
这样我们会删除所有包含NaN的行,如果使用axis=1则会删除所有包含NaN值的列。
你需要考虑的一件事是某列中NaN值的百分比,如果某列中超过70%的值是NaN,并且我没有其他方法来填补这些值,我会删除这一列。如果NaN值在各列中分布,则最好删除行。
希望这对你有帮助。