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

Python中如何将DataFrame指定多列转换为哑变量并拼接回原表

多列转哑变量并拼接回原DataFrame解决方法

你之前的代码仅生成了指定列的哑变量结果,未执行和原表的拼接操作,可通过以下两种方式实现需求:

方法1:手动生成哑变量后拼接

import pandas as pd

# 定义需转换为哑变量的列列表
new_dum = ['V1','V4','V5','V15','V52']

# 可选操作:若原数值列需按分类属性转哑变量,先转为字符串类型
# traindf[new_dum] = traindf[new_dum].astype(str)

# 生成哑变量
dumy_col = pd.get_dummies(traindf[new_dum], drop_first = True)

# 剔除原表中已转换的原始列,和哑变量按列拼接
traindf_result = pd.concat([traindf.drop(new_dum, axis=1), dumy_col], axis=1)

方法2:直接指定columns参数(更推荐)

pd.get_dummies支持直接传入全量DataFrame,通过columns参数指定需转哑变量的列,自动保留其他原列并完成拼接:

new_dum = ['V1','V4','V5','V15','V52']
traindf_result = pd.get_dummies(traindf, columns=new_dum, drop_first=True)

注意事项

  • drop_first=True用于规避哑变量共线性问题,回归类模型建议保留,树模型可根据需求删除该参数
  • 若需保留原始列无需删除,方法1中去掉drop(new_dum, axis=1)直接拼接即可
  • 若目标列是连续数值,需先完成分箱(pd.cut/pd.qcut)操作后再转哑变量

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 02:24:03