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

如何在Pandas DataFrame的lambda函数中实现多条件自定义函数应用?

解决方案

1. 定义颜色对应关键词列表

先明确各性格分类对应的关键词集合:

list_orange = ["proactive", "creative", "dynamic"]  # orange性格关键词
list_red = ["ambitious", "competitive", "determined"]  # red性格关键词
list_green = ["collaborative", "patient", "supportive"]  # green性格关键词

2. 编写行处理函数

用独立函数替代lambda,实现多条件判断逻辑,可读性和扩展性更强:

def process_resume(row):
    # 建立颜色到关键词列表的映射关系
    color_map = {
        "orange": list_orange,
        "red": list_red,
        "green": list_green
    }
    
    # 优先匹配color_1,无匹配则匹配color_2
    if row["color_1"] in color_map:
        target_words = color_map[row["color_1"]]
    elif row["color_2"] in color_map:
        target_words = color_map[row["color_2"]]
    else:
        # 两个颜色都无匹配时返回原文本
        return row["resume_text"]
    
    # 调用addKeyWords添加关键词
    return addKeyWords(row["resume_text"], target_words)

如果需要同时应用两个性格分类的关键词(比如一行同时有orange和red,合并两类关键词),可以调整逻辑:

def process_resume(row):
    color_map = {
        "orange": list_orange,
        "red": list_red,
        "green": list_green
    }
    
    # 收集所有匹配的关键词列表
    target_words = []
    if row["color_1"] in color_map:
        target_words.extend(color_map[row["color_1"]])
    if row["color_2"] in color_map:
        target_words.extend(color_map[row["color_2"]])
    
    if not target_words:
        return row["resume_text"]
    
    return addKeyWords(row["resume_text"], target_words)

3. 应用函数到DataFrame

通过apply按行处理整个数据集:

df["resume_text_extra"] = df.apply(process_resume, axis=1)

4. 优化addKeyWords函数(可选)

原函数的词数计算逻辑可以简化,同时避免短文本导致添加词数为0的情况:

import random
def addKeyWords(string, color_list):
    resume_word_count = len(string.split())
    percentage = 0.05
    number_of_words_to_be_added = round(resume_word_count * percentage)
    
    # 词数为0时直接返回原文本,避免空列表报错
    if number_of_words_to_be_added == 0:
        return string
    
    list_of_words = random.choices(color_list, k=number_of_words_to_be_added)
    return string + " " + " ".join(list_of_words)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 12:33:17