我正在尝试将数据集调整为逻辑回归模型,但遇到以下错误:
ValueError:输入包含NaN,无穷大或对于dtype('float64')而言太大的值
我尝试填充Age
列的缺失值,并尝试运行模型拟合,但仍然无法正常工作。 note-使用python 3.7.1
train = pd.read_csv('titanic_train.csv')
X = train.drop('Survived',axis=1)
y = train['Survived']
from sklearn.model_selection import train_test_split
train['Age'].isnull().values.any()
train['Age'].fillna(train['Age'].mean())
X_train, X_test, y_train,y_test = train_test_split(train.drop('Survived',axis=1),train['Survived'],test_size=0.3,random_state=101)
from sklearn.linear_model import LogisticRegression
logmodel = LogisticRegression()
logmodel.fit(X_train,y_train)
模型应该合适,我们应该能够得到混淆矩阵
答案 0 :(得分:4)
原因是这一行:
train['Age'].fillna(train['Age'].mean())
pandas
方法创建副本;除非您明确告知它们,否则它们不会修改调用它们的对象。因此,您需要执行以下操作之一:
inplace=True
:train['Age'].fillna(train['Age'].mean(), inplace=True)
train['Age'] = train['Age'].fillna(train['Age'].mean())
请注意,两者都行不通。