如何修复 One hot encoder 的类型错误
How can I fix type error for One hot encoder
我的问题是我需要将一些分类列组更改为数字以供机器学习使用。
我不想使用 LabelEncoding,因为我听说它不如 OnehotEncoder 高效。
所以我使用了这个代码
X = df.drop("SalePrice", axis=1)
y = df['SalePrice']
one_hot = OneHotEncoder()
transformer = ColumnTransformer([("one_hot", one_hot,categorical_features)], remainder="passthrough")
transformed_X = transformer.fit_transform(df)
其中分类特征是我想在
上使用 onehotencoder 的列的列表
但是我得到一个多行错误作为输出,整体问题如下:
TypeError: Encoders require their input to be uniformly strings or numbers. Got ['float', 'str']
有人遇到了类似的问题,被要求清理他的数据以删除 nan 值,我已经这样做了,但没有改变。我还被要求将我的列的数据类型更改为字符串,我写了一个循环来这样做:
这个错误很严重 self-explainatory:您不能在您的列S 中包含 str
和 float
来使用编码器。
Where the categorical features are the list of columns i want to use the onehotencoder on
确保所有列也共享相同的类型。
您可以尝试这样做以强制所有内容成为字符串
for e in categorical_features:
df[e]=df[e].astype(str)
或者如果所有内容 'should' 都是浮动的,那么您的数据可能还有其他问题。在这种情况下使用 isnumeric
我的问题是我需要将一些分类列组更改为数字以供机器学习使用。 我不想使用 LabelEncoding,因为我听说它不如 OnehotEncoder 高效。
所以我使用了这个代码
X = df.drop("SalePrice", axis=1)
y = df['SalePrice']
one_hot = OneHotEncoder()
transformer = ColumnTransformer([("one_hot", one_hot,categorical_features)], remainder="passthrough")
transformed_X = transformer.fit_transform(df)
其中分类特征是我想在
上使用 onehotencoder 的列的列表但是我得到一个多行错误作为输出,整体问题如下:
TypeError: Encoders require their input to be uniformly strings or numbers. Got ['float', 'str']
有人遇到了类似的问题,被要求清理他的数据以删除 nan 值,我已经这样做了,但没有改变。我还被要求将我的列的数据类型更改为字符串,我写了一个循环来这样做:
这个错误很严重 self-explainatory:您不能在您的列S 中包含 str
和 float
来使用编码器。
Where the categorical features are the list of columns i want to use the onehotencoder on
确保所有列也共享相同的类型。
您可以尝试这样做以强制所有内容成为字符串
for e in categorical_features:
df[e]=df[e].astype(str)
或者如果所有内容 'should' 都是浮动的,那么您的数据可能还有其他问题。在这种情况下使用 isnumeric