[英]ValueError: Input contains NaN, infinity or a value too large for dtype('float64') while preprocessing Data
[英]ValueError: Input contains NaN, infinity or a value too large for dtype('float64') in linear regression
誰能幫我解決這個問題?
我嘗試重置索引,但沒有幫助。
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() 方法中遇到錯誤。
好的,所以我找到了一個答案,即缺少一些數據,更准確地說是空單元格。 如果您遇到此類錯誤,這是解決方案。
檢查空單元格。
運行dataframename.isnull().sum()
(用您的 dataframe 名稱方法替換dataframename到您的 dataframe。
這將向您顯示哪些列中有空單元格或 NaN 單元格。
刪除空單元格
運行dataframename = dataframename.dropna()
以刪除空單元格。
檢查此站點以獲取更多過濾器https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.dropna.ZFC35FDC70D5FC69D2639883A822CA7
確認它
運行dataframename.isnull().sum()
檢查是否有空單元格。
就這樣完成了。! 現在繼續您的程序的剩余部分。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.