问题:
在机器学习做titanic时,报错ValueError: Input contains NaN, infinity or a value too large for dtype(‘float32’).
原因:
因为在输入数据时,有的列中的数据为空,导致报错。
用np.isnan(titanic[x]).any() 检查相应的列是否为空,如果有为空的值就返回True,否则返回false。
print(np.isnan(titanic_test[predictors]).any())#查看是否有空的数据
运行结果:
PassengerId False
Pclass False
Sex False
Age False
SibSp False
Parch False
Fare True
Embarked False
Fare中有空值
解决方法:
titanic_test['Fare']=titanic["Fare"].fillna(titanic['Fare'].median())
用中位数填充空值
填充后,结果可以正常使用。