使用 LabelEncoder 转换数据
convert data with LabelEncoder
我写这个函数是为了用 LabelEncoder 转换分类特征
#convert columns to dummies with LabelEncoder
cols = ['ToolType', 'TestType', 'BatteryType']
#apply ene hot encoder
le = LabelEncoder()
for col in cols:
data[col] = data[col].astype('|S') #convert object to str type before apply label encoder
le.fit(ravel(data[col]))
data[col] = le.transform(ravel(data[col]))
这些列中有空值,但出现了这样的错误
TypeError: ufunc 'isnan' not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule ''safe''
有谁知道如何帮助我解决这个问题?谢谢
此行正在转换为编码器不支持的 numpy bytes_
:
data[col] = data[col].astype('|S')
如果要转换成字符串,把'|S'
改成str
:
data[col] = data[col].astype(str)
附带说明一下,您可以使用 apply()
and fit_transform
:
将循环缩减为一行
df[cols] = df[cols].astype(str).apply(le.fit_transform)
我写这个函数是为了用 LabelEncoder 转换分类特征
#convert columns to dummies with LabelEncoder
cols = ['ToolType', 'TestType', 'BatteryType']
#apply ene hot encoder
le = LabelEncoder()
for col in cols:
data[col] = data[col].astype('|S') #convert object to str type before apply label encoder
le.fit(ravel(data[col]))
data[col] = le.transform(ravel(data[col]))
这些列中有空值,但出现了这样的错误
TypeError: ufunc 'isnan' not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule ''safe''
有谁知道如何帮助我解决这个问题?谢谢
此行正在转换为编码器不支持的 numpy bytes_
:
data[col] = data[col].astype('|S')
如果要转换成字符串,把'|S'
改成str
:
data[col] = data[col].astype(str)
附带说明一下,您可以使用 apply()
and fit_transform
:
df[cols] = df[cols].astype(str).apply(le.fit_transform)