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

如何修正Pandas中职位头衔资深级别判断函数的遍历逻辑问题?

职位头衔资深级别标记函数失效原因及修复方案

你遇到的问题出在函数的循环逻辑错误上,原函数只会检查列表里的第一个关键词,一旦不匹配就直接返回0,根本不会验证后续的关键词。

原代码问题分析

def seniority_level_(text):
    seniority_list = ["sr","senior","lead","director", "sr.","vp"]
    for i in seniority_list:
        if i in text.lower():
            return 1
        else:
            return 0
df_data["Senior level"] = df_data["Job Title"].apply(seniority_level_)
  • 当遍历到第一个关键词"sr"时,如果当前职位头衔里不包含它,函数会立刻执行return 0,终止循环,完全不会去检查"senior"、"lead"等其他关键词。
  • 只有当职位头衔恰好包含第一个关键词"sr"时,才会返回1,其他含资深词汇的条目都会被错误标记为0。

修复方案

方案1:修正循环逻辑

让函数遍历完所有关键词后再返回结果,只要有一个关键词匹配就返回1,全部不匹配才返回0:

def seniority_level_(text):
    seniority_list = ["sr","senior","lead","director", "sr.","vp"]
    text_lower = text.lower()
    for i in seniority_list:
        if i in text_lower:
            return 1
    # 所有关键词都不匹配才返回0
    return 0
df_data["Senior level"] = df_data["Job Title"].apply(seniority_level_)

方案2:用Pandas内置方法更高效实现

不需要自定义函数,直接用str.contains结合正则表达式,代码更简洁高效:

senior_pattern = r'sr|senior|lead|director|sr\.|vp'
df_data["Senior level"] = df_data["Job Title"].str.lower().str.contains(senior_pattern).astype(int)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 07:13:16