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

如何在Pandas中对数值型数据实现One-Hot Encode独热编码?

pandas数值型数据独热编码实现方案

你对get_dummies()仅支持字符串类型的认知是误区,pandas原生的pd.get_dummies()完全支持对数值型列执行独热编码,你要的效果可以直接通过该方法实现,不需要额外自定义函数。

核心实现逻辑

默认情况下get_dummies()只会自动对object(字符串)和category类型的列做编码,数值型列需要通过columns参数手动指定要编码的列名,即可生成列名_取值格式的独热特征,额外指定dtype=int可以输出整数格式的0/1值,和你预期的输出完全匹配。

代码示例

import pandas as pd

# 构造示例数据
df = pd.DataFrame({'A': [0, 1, 0, 2], 'B': [0, 0, 1, 0]})

# 直接调用get_dummies实现需求
df_oh = pd.get_dummies(df, columns=['A', 'B'], dtype=int)

print(df_oh)

输出结果

A_0  A_1  A_2  B_0  B_1
0    1    0    0    1    0
1    0    1    0    1    0
2    1    0    0    0    1
3    0    0    1    1    0

扩展说明

如果需要对全表所有列做独热编码,不用逐个输入列名,直接把columns参数赋值为df.columns即可:

df_oh = pd.get_dummies(df, columns=df.columns, dtype=int)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 21:15:04