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

如何对多标签数据反向One Hot Encoding,从独热编码列提取标签生成新列

多标签One Hot Encoding反向转换解决方案

我们可以通过Pandas快速实现需求,以下是可直接复用的代码:

首先导入依赖包:

import pandas as pd
import numpy as np

小数据量场景(万行级以下)

直接用apply遍历即可,写法简单易读:

# 读取你的数据,示例代码可替换为你的实际数据读取逻辑
df = pd.read_csv("你的数据文件路径.csv")

# 配置独热编码列列表
# 方式1:手动指定列名
onehot_cols = ['LabelA', 'labelB', 'labelC']
# 方式2:自动筛选独热列,排除非独热的其他列即可,适合列数多的场景
# onehot_cols = df.columns.difference(['要排除的非独热列名1', '要排除的非独热列名2'])

# 生成标签列
df['labels'] = df[onehot_cols].apply(
    lambda row: [col for col, val in row.items() if val == 1],
    axis=1
)

# 输出验证
print(df)

大数据量场景(十万行级以上)

用向量化操作优化,执行效率远高于apply遍历:

arr = df[onehot_cols].values
mask = arr == 1
df['labels'] = [list(np.array(onehot_cols)[m]) for m in mask]

执行后即可得到你需要的带labels列的目标数据,每条数据的labels列会自动包含所有值为1的标签名称。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 19:27:04