使用标签编码器时出现类型错误

TypeError while using label encoder

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

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']

任何见解都有帮助!!!

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

使用:

df3 = df3.astype(str).apply(label_encoder.fit_transform)