0

我正在使用 Beers 数据集,我想在其中使用数据类型“对象”对数据进行编码。以下是我的代码。

from sklearn import preprocessing

df3 = BeerDF.select_dtypes(include=['object']).copy()

label_encoder = preprocessing.LabelEncoder()
df3 = df3.apply(label_encoder.fit_transform)

发生以下错误。

TypeError:编码器要求其输入统一为字符串或数字。得到 ['float', 'str']

任何见解都有帮助!!!

4

2 回答 2

1

利用:

df3 = df3.astype(str).apply(label_encoder.fit_transform)
于 2021-09-14T15:13:01.803 回答
0

从 TypeError 看来,您要转换为标签的列似乎有两种不同的数据类型(dtypes),在您的情况下是字符串和浮点数,这会引发错误。为避免这种情况,您必须修改列以具有统一的 dtype(字符串或浮点数)。例如在 Iris 分类数据集中,class=['Setosa', 'Versicolour', 'Virginica'] 而不是 ['Setosa', 3, 5, 'Versicolour']

于 2021-09-14T15:10:37.597 回答