【问题标题】:How to fix : " ValueError: Input contains NaN, infinity or a value too large for dtype('float32')."?如何修复:“ValueError:输入包含 NaN、无穷大或对于 dtype('float32') 而言太大的值。”?
【发布时间】:2019-05-26 21:56:12
【问题描述】:

我正在使用 anaconda 导航器。我的数据集包含空字段。我试图删除它仍然存在错误:“ValueError:输入包含NaN,无穷大或对于dtype('float32')来说太大的值。”

from sklearn.preprocessing import Imputer
from sklearn.ensemble import RandomForestClassifier
import pandas as pd
from sklearn.preprocessing import LabelEncoder
X = pd.read_csv("f.csv")
y= pd.read_csv("target.csv")
print (X.head())
print(X.columns)
print(X[u'screen_name'])

le=LabelEncoder()

for col in X.columns.values:

    if X[col].values.any()=='nan':
        X[col].values=0;
    if X[col].dtypes=='object':
        # data=X[col]
        #X.shape
        #le.fit(X[col])
        print("current column is ")
        print(col)
        print(X[col])
        X[col]=le.fit_transform(X[col])
        print("after tranformation")
        print(X[col]) 
mean_imputer = Imputer(missing_values='NaN', strategy='mean', axis=0)
mean_imputer = mean_imputer.fit(X)
imputed_df = mean_imputer.transform(X)
clf = RandomForestClassifier(n_estimators=10, max_depth=6, n_jobs=1, verbose=2)
model = clf.fit(X, y)

【问题讨论】:

    标签: python-2.7


    【解决方案1】:

    问题可能是您的 Imputer 尝试用字符串“NaN”替换值。实际的 NaN 仍将在数据中,导致模型在拟合期间出现问题。相反,尝试

    mean_imputer = Imputer(missing_values=np.nan, strategy='mean', axis=0)

    【讨论】:

      猜你喜欢
      • 2019-05-30
      • 2021-02-01
      • 1970-01-01
      • 2020-08-23
      • 2019-07-21
      • 2022-01-21
      • 2019-11-28
      • 2019-04-10
      • 2019-12-03
      相关资源
      最近更新 更多