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

如何在Python中根据Position列的取值生成指定规则的Role新列?

解决方案

问题分析

你当前的代码仅能区分"Chef"和其他所有情况,无法满足多规则分类需求,且条件判断写法有误(== ["Chef"]是与列表比较,应直接与字符串"Chef"比较)。我们需要按规则优先级依次判断,生成目标Role列。

实现代码

使用numpy.select处理多条件分支,按规则优先级设置条件与对应值:

import numpy as np
import pandas as pd

# 假设你的DataFrame名为df
# 定义条件列表,注意顺序:先判断纯Chef,再判断含Collegial,最后判断含Assistant
conditions = [
    df['职位'] == 'Chef',
    df['职位'].str.contains('Collegial'),
    df['职位'].str.contains('Assistant')
]

# 对应条件的结果值
values = ['One', 'Collegial', 'Assistant']

# 生成Role列
df['Role'] = np.select(conditions, values)

代码说明

  1. 条件顺序:先判断纯Chef的情况,避免被后续包含Chef的其他职位(如Assistant Chef)干扰;接着判断含Collegial的情况,最后判断含Assistant的情况,确保规则优先级正确。
  2. str.contains:用于检测字符串中是否包含指定子串,满足"包含Collegial/Assistant"的规则要求。
  3. np.select:根据条件列表的顺序,匹配第一个满足的条件并返回对应值,完美适配多分支规则场景。

运行上述代码后,你的DataFrame将生成符合预期的Role列,与你给出的输出示例一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 04:25:16