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
相关产品推荐
相关产品推荐

