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

如何用pd.get_dummies生成0/1而非布尔值?泰坦尼克数据集问题

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

问题原因

pd.get_dummies处理字符串类型的分类列时,默认生成布尔类型(bool)的结果。虽然True等价于1、False等价于0,但如果需要显式的整数类型0/1,或者只想保留单列,可参考以下几种方法:

方法1:生成单列并转整数

在get_dummies中添加drop_first=True删除冗余列,再用astype(int)将布尔值转为0和1:

male = pd.get_dummies(training_set['Sex'], drop_first=True).astype(int)

执行后会得到仅含male的单列,值为1(男性)和0(女性)的整数类型。

方法2:直接映射(二分类场景更高效)

如果仅需将Sex列转为0/1的单列,无需使用get_dummies,直接用字典映射更直观:

training_set['Sex'] = training_set['Sex'].map({'male': 1, 'female': 0})

该方法一步到位,直接在原列生成0/1的整数结果。

方法3:已生成布尔列时转整数

如果已经得到两列布尔结果,只需转为0/1类型,直接对结果使用astype(int)即可:

male = pd.get_dummies(training_set['Sex']).astype(int)

注意此方法会保留female和male两列,若仅需单列优先选择方法1。

内容的提问来源于stack exchange,提问作者SH_IQ

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 23:53:13