1

我收到以下错误:return array(a, dtype, copy=False, order=order) ValueError: could not convert string to float: 'BOX72'(BOX72 是第 5 列下的值)。

错误似乎与代码一致impute_knn.fit_transform(X)

这是到目前为止的代码:

import pandas as pd
from sklearn.preprocessing import LabelEncoder
import numpy as np

dataframe = pd.read_csv('file.csv', delimiter=',')

le = LabelEncoder()
dfle = dataframe

dfle2 = dfle.apply(lambda col: le.fit_transform(col.astype(str)), axis=0, result_type='expand')

newdf = dfle2[['column1', 'column2', 'column3', 'column4', 'column5', 'column6', 'column7']]

X = dataframe[['column1', 'column2', 'column4', 'column5', 'column6', 'column7']].values

y = dfle.column3

from sklearn.preprocessing import OneHotEncoder
from sklearn.compose import ColumnTransformer
ohe = OneHotEncoder()

impute_knn = KNNImputer(n_neighbors=2)
impute_knn.fit_transform(X)

ColumnTransformer([('encoder', OneHotEncoder(), [0])], remainder='passthrough')
X = ohe.fit_transform(X).toarray()

我知道我可能可以使用类似的东西strip(),但我似乎无法弄清楚如何使用它来删除所有单元格的字符串之前或之后的任何空格(以防有其他类似的值条目)。我也,不知道这是否真的是解决方案。任何指示或帮助将不胜感激。谢谢你。

4

0 回答 0