【问题标题】:ValueError: Input contains NaN, infinity or a value too large for dtype('float64') in linear regressionValueError:输入包含 NaN、无穷大或对于线性回归中的 dtype('float64') 而言太大的值
【发布时间】:2020-12-02 22:03:35
【问题描述】:

谁能帮我解决这个问题?

我尝试重置索引,但没有帮助。

Python 3.7 版

代码:

import pandas as pd
import numpy as np
housing = pd.read_csv('housing.csv')
X = housing.iloc[:, housing.columns !='median_house_value'].values
y = housing.iloc[:, 9].values
print(X[0])


housing.head()


from sklearn.datasets import fetch_california_housing
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.preprocessing import LabelEncoder, OneHotEncoder
from sklearn.compose import ColumnTransformer
from sklearn.linear_model import LinearRegression


labelencoder = LabelEncoder()
X[:, 8] = labelencoder.fit_transform(X[:, 8])


print(X[0])


X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)


regressor = LinearRegression()
regressor.fit(X_train,y_train)
#testing/predicting using test set
y_pred = regressor.predict(X_test)
print(y_pred)

regressor.fit() 方法出现错误。

【问题讨论】:

标签: python pandas numpy machine-learning scikit-learn


【解决方案1】:

好的,所以我找到了一个答案,即缺少一些数据,更准确地说是空单元格。如果您遇到此类错误,这里是解决方案。

  1. 检查空单元格

    运行dataframename.isnull().sum()(将dataframename替换为您的数据框名称方法到您的数据框。

    这将显示哪些列中有空单元格或 NaN 单元格。

  2. 删除空单元格

    运行dataframename = dataframename.dropna() 删除空单元格。

    查看此站点以获取更多过滤器https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.dropna.html

  3. 确认

    运行dataframename.isnull().sum()检查是否有空单元格。

大功告成!!现在继续您的程序的剩余部分。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-02-12
    • 2019-10-11
    • 2017-11-23
    • 2019-06-01
    • 2019-03-26
    • 2016-07-31
    • 2020-08-16
    • 2020-05-25
    相关资源
    最近更新 更多