【问题标题】:How to solve the error : Input contains NaN, infinity or a value too large for dtype('float64').?如何解决错误:输入包含 NaN、无穷大或对于 dtype('float64') 而言太大的值。?
【发布时间】:2019-11-27 02:35:23
【问题描述】:

我正在研究泰坦尼克号数据集。我已经在分类列中填充了缺失值。分类列从索引 0 开始到索引 3。 我已将 LabelEncoder 用于分类列。

使用 onehotencoder 时,出现错误: 输入包含 NaN、无穷大或对于 dtype('float64') 来说太大的值。

没有 NaN 值。我无法更正此错误

我在使用 OneHotEncoder 之前尝试过缩放,但仍然出现错误。

y_train = train.iloc[:,-1].values
x_train = train.iloc[:,:-1].values
test = test.iloc[:,:].values

from sklearn.preprocessing import 
LabelEncoder,OneHotEncoder,StandardScaler
for i in range(4):
    le = LabelEncoder()
    x_train[:,i]=le.fit_transform(x_train[:,i])
    test[:,i]=le.transform(test[:,i])

#sc = StandardScaler()
#x_train = sc.fit_transform(x_train)
#test = sc.transform(test)

ohe = OneHotEncoder(categorical_features=[range(4)])
x_train = ohe.fit_transform(x_train).toarray()
test = ohe.transform(test).toarray()

如何解决这个错误?

【问题讨论】:

标签: python pandas machine-learning scikit-learn


【解决方案1】:

我还看到在使用 LabelEncoder 时偶尔会在列中弹出 NaN。但代码有点不同:

df['c'] = pd.DataFrame(LabelEncoder().fit_transform(df['c']))

在这种情况下,解决方案只是将其更改为:

df['c'] = LabelEncoder().fit_transform(df['c'])

【讨论】:

    猜你喜欢
    • 2019-03-26
    • 2019-10-11
    • 2017-09-06
    • 2019-06-01
    • 2018-03-29
    • 2021-05-27
    • 2017-02-19
    • 2018-02-12
    • 2016-03-25
    相关资源
    最近更新 更多