You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用pd.get_dummies做OneHotEncoding后获布尔值而非数值的问询

解决pd.get_dummies生成布尔值而非1/0的问题

用pd.get_dummies做独热编码后得到True/False而不是预期的1/0,主要是因为默认情况下,如果原分类列的类型是布尔或分类类型,生成的独热列会继承布尔类型。给你几个快速解决的方法:

  • 方法一:指定dtype参数(最直接)
    在调用pd.get_dummies时直接指定输出类型为整数,这样生成的列就会是1和0:

    pd.get_dummies(ds, columns=["type"], dtype=int)
    
  • 方法二:转换已生成的布尔列类型
    如果已经得到了含布尔值的编码数据框,直接把整个数据框转成整数类型:

    encoded_ds = pd.get_dummies(ds, columns=["type"])
    encoded_ds = encoded_ds.astype(int)
    
  • 方法三:先转换原列类型再编码
    把原分类列转成字符串类型后再做独热编码,也能得到整数结果:

    pd.get_dummies(ds["type"].astype(str), prefix="type")
    

内容的提问来源于stack exchange,提问作者Syed Amir Ali

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 05:05:54