繁体   English   中英

ValueError:输入包含 NaN、无穷大或对于 dtype('float64') 来说太大的值。 如何处理这个错误?

[英]ValueError: Input contains NaN, infinity or a value too large for dtype('float64'). How to handle this error?

在数据集中,我首先使用平均策略用 imputer class 替换了所有缺失值,但它已经用数据集中的大值替换了它,这导致了这个错误。 这可能是什么解决方案,或者我如何将值四舍五入到小数点后 2 位。 由于数据集包含浮点值,因此将它们四舍五入到小数点后 2 或 3 位对我有用。

代码:

import numpy as np
import pandas as pd
import matplotlib as plt


df=pd.read_csv("C:/Users/asus/Desktop/Life Expectancy Data.csv")
X=df.iloc[:, 4:].values
Y=df.iloc[:,3:4].values

from sklearn.impute import SimpleImputer
imputer=SimpleImputer(missing_values=np.nan,strategy='mean')
imputer.fit(X)
X=imputer.transform(X)

from sklearn.model_selection import train_test_split
X_train,X_test,Y_train,Y_test=train_test_split(X,Y,test_size=0.2,random_state=0)

from sklearn.linear_model import LinearRegression
reg=LinearRegression()
reg.fit(X_train,Y_train)
X_train.replace([np.inf, -np.inf], np.nan, inplace=True)

使用上述

然后将 null 值替换为

X_train.fillna(999, inplace=True)

或者

X_train.fillna(X_train.mean(), inplace=True)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM