【发布时间】:2018-02-12 21:38:08
【问题描述】:
我正在用 python 练习机器学习。我被困在障碍物上,但我遇到了困难。我使用的数据集是 titanic.csv。我正在尝试使用线性回归计算年龄列缺失值。
training = dftrain[['Age','SibSp','Parch','Fare','Pclass','Sex_female',
'Sex_male','Embarked_C','Embarked_Q','Embarked_S']]
testing = dftest[['Age','SibSp','Parch','Fare','Pclass','Sex_female',
'Sex_male','Embarked_C','Embarked_Q','Embarked_S']]
unify = pd.concat([training, testing])
train = unify[unify['Age'].notnull()]
clf = LinearRegression()
#clf.fit(train.drop(['Age'],axis = 1), train['Age'])
pd.set_option('display.max_rows',None )
train
我已经手动尝试通过这样做来修复错误,
train[train['Age'].isnull()]
使用上面的代码,我得到没有值的列,表明没有 NaN 值。我对所有列都这样做了。我还检查了使用,
train.notnull().count()
Age 1046
SibSp 1046
Parch 1046
Fare 1046
Pclass 1046
Sex_female 1046
Sex_male 1046
Embarked_C 1046
Embarked_Q 1046
Embarked_S 1046
dtype: int64
但是每当我认为一切都很好并且我取消注释 clf.fit() 函数时,我会收到错误
ValueError: Input contains NaN, infinity or a value too large for dtype('float64').
请帮助我无法弄清楚我的代码有什么问题。
【问题讨论】: