为分数设置 KNN
Set up a KNN for a score
我尝试使用 KNN 在“分数”列中填充 nan(基于 X_100g、Y_100g 和 Z_100g.
列中的值
这是我的 df:
Product_Name brand score X_100g Y_100g Z_100g
PA abc a 40 45 na
PB def b 27 27 8
PC ghi na 78 na 56
PD klm c na 29 29
PE nop b 57 3 76
PF qrs na 45 42 33
我试过的是:
imputer = KNNImputer(n_neighbors=5)
dataknn = imputer.fit_transform(data.filter("score"))
似乎由于错误而无法运行:
ValueError: at least one array or dtype is required
谁能帮我解决这个问题?
谢谢!
我试图更改我的初始代码:
imputer = SimpleImputer(strategy = "most_frequent")
dataimputed = imputer.fit_transform(data.filter(["score"]))
因此出现以下错误:“ValueError:无法从重复轴重新索引”
错误一:
df.filter('score')
returns 一个空数据框。
这是因为 Pandas 需要一个类似列表的对象作为 'items'
参数(即,您想要 select 的列的名称列表),请参阅 docs。但是,您提供的是 str
.
执行 df.filter(['score'])
或仅执行 df['score']
以将 'score'
列提取为数据框。
错误二:
您正在对分类变量使用 KNNImputer
,这是不可能的,因为它仅适用于数字数据。
相反,将 SimpleImputer
(或 IterativeImputer
)与 'most_frequent'
或 'constant'
策略一起使用 – 这些策略适用于分类数据。
如果您真的想使用 KNNImputer
,请先对 'score'
列进行编码,估算空值,然后再转换回来。
我尝试使用 KNN 在“分数”列中填充 nan(基于 X_100g、Y_100g 和 Z_100g.
列中的值这是我的 df:
Product_Name brand score X_100g Y_100g Z_100g
PA abc a 40 45 na
PB def b 27 27 8
PC ghi na 78 na 56
PD klm c na 29 29
PE nop b 57 3 76
PF qrs na 45 42 33
我试过的是:
imputer = KNNImputer(n_neighbors=5)
dataknn = imputer.fit_transform(data.filter("score"))
似乎由于错误而无法运行:
ValueError: at least one array or dtype is required
谁能帮我解决这个问题?
谢谢!
我试图更改我的初始代码:
imputer = SimpleImputer(strategy = "most_frequent")
dataimputed = imputer.fit_transform(data.filter(["score"]))
因此出现以下错误:“ValueError:无法从重复轴重新索引”
错误一:
df.filter('score')
returns 一个空数据框。
这是因为 Pandas 需要一个类似列表的对象作为 'items'
参数(即,您想要 select 的列的名称列表),请参阅 docs。但是,您提供的是 str
.
执行 df.filter(['score'])
或仅执行 df['score']
以将 'score'
列提取为数据框。
错误二:
您正在对分类变量使用 KNNImputer
,这是不可能的,因为它仅适用于数字数据。
相反,将 SimpleImputer
(或 IterativeImputer
)与 'most_frequent'
或 'constant'
策略一起使用 – 这些策略适用于分类数据。
如果您真的想使用 KNNImputer
,请先对 'score'
列进行编码,估算空值,然后再转换回来。