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

如何基于数据框的独热编码种族列生成新的Race分类列?

实现方法

以下是基于Python pandas库的两种常用实现方案:

方案1:idxmax+映射(兼容性强,列顺序不影响结果)

利用独热编码每行仅1个取值为1的特征,先提取每行取值为1的列名,再通过字典映射得到对应编码:

import pandas as pd

# 定义种族列到编码的映射关系
race_mapping = {
    'White': 0,
    'Black': 1,
    'Asian': 2,
    'Hisp': 3,
    'Other': 4
}

# 提取五种种族列,取每行最大值对应的列名,映射后赋值给Race列
df['Race'] = df[['White', 'Black', 'Asian', 'Hisp', 'Other']].idxmax(axis=1).map(race_mapping)

方案2:点积运算(效率更高,适合大数据量)

直接给对应列赋予目标权重,通过点积运算直接得到结果,需要注意列顺序和权重顺序要完全匹配:

# 权重顺序和前面选择的列顺序一一对应:White对应0、Black对应1、以此类推
df['Race'] = df[['White', 'Black', 'Asian', 'Hisp', 'Other']].dot([0,1,2,3,4])

注意事项

两种方案都默认你的原始数据中,每行的五种种族列有且仅有一个取值为1,没有多选或者全0的异常情况,如果存在异常数据需要先做清洗再执行上述操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 22:45:05