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

Pandas中如何引用字典与现有01列创建匹配ID新列

实现代码(匹配你提到的map方法需求)

# 逐行取1对应的列名,通过映射字典生成ID列
df['ID'] = df.idxmax(axis=1).map(dict_ids)

逻辑说明

  • 因为你的数据每行恰好只有一个1、其余为0,df.idxmax(axis=1)会逐行返回值为1的列名,示例中得到的序列为["A", "C", "B"]
  • 调用map(dict_ids)即可将列名按照你提供的映射字典替换为对应的ID值,直接得到目标列

补充校验(可选)

如果需要避免出现某行有多个1/没有1的异常情况,可以先加校验逻辑:

# 检查所有行的1的数量是否为1
assert (df.sum(axis=1) == 1).all(), "存在行不符合「恰好一个1」的规则要求"

其他简洁实现方案

# 用矩阵乘法直接计算ID,不需要map
df['ID'] = df.dot(pd.Series(dict_ids))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 14:24:05