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

Pandas如何将列名转为数据值 实现类似R中model.matrix的效果

Pandas独热编码转列名拼接因子变量实现

你需要实现的是将每行取值为1的列名拼接为字符串,生成目标数据框,在Pandas中可以通过矩阵点乘的方式快速实现,代码如下:

首先导入依赖、定义输入数据:

import pandas as pd

x1 = pd.DataFrame({'A': [1,0,0],
            'B': [0,1,0],
            'C': [0,1,1]})

核心转换代码

一行代码即可得到你需要的x2结果:

x2 = pd.DataFrame({'All': x1.dot(x1.columns)})

运行后x2的输出和你给出的目标结果完全一致:

序号All
0A
1BC
2C

可选:转换为分类(因子)变量

如果你需要将结果列定义为因子变量,可额外执行:

# 若需要自定义因子水平,可传入categories参数指定取值范围
x2['All'] = pd.Categorical(x2['All'])

内容的提问来源于stack exchange,提问作者Expectation mean first moment

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 12:09:02