我在Python中練習機器學習。我陷入了一個障礙,但我遇到了困難。我使用的數據集是titanic.csv。我正在嘗試使用線性迴歸計算年齡列缺失值。ValueError:輸入包含使用LinearRegression的dtype('float64')的NaN,無窮大或值太大
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()]
使用I得到與沒有值指示不存在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').
請幫我想不出我的代碼有什麼問題。
是。我試圖做到這一點。我會進一步解釋。在做train.isnull.sum()之後,在NaN的Fare列中有一個值,而且,我希望看到該行顯示它有兩行,並且具有相同的索引,其中一行沒有null,另一行票價爲空值。所以我用平均值填充了NaN值,隨後具有相同索引的兩行消失了。不知何故...但它的工作,所以這是很好,我猜 – Pseudo