ValueError:无法对非数字数据使用均值策略:无法将字符串转换为浮点数:

问题描述 投票:0回答:1

sample_real_state = pd.read_csv('Sample_real_estate_data.csv',na_values = Missing_val) 样本真实状态 计数 = 0 对于sample_real_state["OWN_OCCUPIED"]中的行: 尝试: 整数(行) Sample_real_state.loc[count,'OWN_OCCUPIED'] = np.nan 除了值错误: 经过 计数+=1

从 sklearn.impute 导入 SimpleImputer imp_mean = SimpleImputer(missing_values='NaN', Strategy='mean',fill_value="在家工作") imp_mean = imp_mean.fit(sample_real_state)

e 数据你好,我正在尝试转换数据类型,因为

“ValueError:无法对非数字数据使用均值策略: 无法将字符串转换为浮点数:'PUTNAM'"

显示这种类型的错误,即使尝试转换它但不起作用,请帮助我解决此问题

python machine-learning data-analysis analysis
1个回答
0
投票

嗨👋🏻首先,如果不格式化,很难理解你的代码片段。出现此异常是因为您的列包含字符串类型值。您无法使用

mean
进行插补,因为
mean
插补仅适用于数字数据。

看起来

sklearn
支持字符串值的唯一插补策略是
most_frequent
。如果这是您想要的行为,您可以使用它:

imp = SimpleImputer(missing_values="NaN", strategy="most_frequent", fill_value=None)

另一种选择是用常量值填充所有这些 NaN 值:

imp = SimpleImputer(missing_values="NaN", strategy="constant", fill_value="<your_value>")

此外,您始终可以使用

pandas
来填充列级别上的缺失值:

data["<string_type_col>"] = data["<string_type_col>"].fillna("<your_value>")

data["<float_type_col>"] = data["<float_type_col>"].fillna(data["<float_type_col>"].mean())
© www.soinside.com 2019 - 2024. All rights reserved.