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

pandas如何根据多列指定取值规则生成新的多分类列

实现方法

你要实现的是哑变量列到多分类列的映射,有两种常用的高效实现方案:

方案1:向量化点积法(推荐,性能最优)

你的规则刚好匹配a=4、b=2、c=1的权重映射,直接对三列做加权求和即可,支持大样本量快速计算:

import pandas as pd

# 你的df已提前构造的前提下,直接执行以下代码即可
df['code'] = df[['a', 'b', 'c']].dot([4, 2, 1])

方案2:条件分支法(逻辑直观,易修改规则)

如果后续需要调整判断优先级、修改返回值,用numpy.where嵌套逻辑更清晰:

import numpy as np

df['code'] = np.where(df['a'] == 1, 4,
             np.where(df['b'] == 1, 2,
             np.where(df['c'] == 1, 1, 0)))

两种方案输出结果均和你给出的预期结果完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 06:09:02