关于编码转换时出现的错误:could not convert string to float: ‘否‘

关于编码转换时出现的错误:could not convert string to float: ‘否’

问题代码如下:

# 布尔型转换函数
def boolean_transform(df):
    df['red_color_enco'] = df['red_color'].map({'是': True, '否': False})
    df['playing_enco'] = df['playing'].map({'是': True, '否': False})
    return df
    
# 布尔型转换器
boolean_transformer = FunctionTransformer(boolean_transform)

# 特征处理,通过管道Pipeline处理数据,province和city使用二进制编码
categorical_transformer = Pipeline(steps=[
    ('binary_encoder_province', BinaryEncoder(cols=['province'])),
    ('binary_encoder_city', BinaryEncoder(cols=['city'])),
    ('boolean', boolean_transformer(cols=['small_micro_enco'])),
    ('hashing_class', HashingEncoder(column='pro_class')),
])

如上,但是因为需要转换的布尔型特征有两列,因此需要自定义转换器。
这是我第二次出现这个问题

could not convert string to float: ‘某个字符’

总结一下:
1.第一次出现问题的原因是Pipeline 或 ColumnTransformer 配置错误;
2.第二次的原因是特征编码未完全覆盖数据,我们需要转换的有两列特征,但是后续只转换了一列,会出现冲突。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值