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

如何在Python Lambda表达式中实现多分支if-elif-else条件

解决Lambda多分支条件的写法问题

Lambda支持通过嵌套三元表达式实现多分支逻辑,只要遵循正确的嵌套语法就能实现你的需求。针对你的场景,修改后的代码如下:

df['AA'] = df['AA'].apply(lambda x: "Suppression" if x in (1, 61) 
                          else "Dont Suppress" if x == 90 
                          else "对应内容" if x == 93 
                          else "Check")

关键说明:

  • 把x==1 or x==61简化为x in (1,61),让代码更简洁易读
  • 嵌套三元表达式要遵循结果1 if 条件1 else 结果2 if 条件2 else ... else 默认结果的顺序,条件会从上到下依次判断

更推荐的替代方案(可读性更高)

如果后续还要增加更多分支,嵌套三元的可读性会快速下降,推荐两种更友好的写法:

1. 自定义函数配合apply

def get_aa_status(x):
    if x in (1, 61):
        return "Suppression"
    elif x == 90:
        return "Dont Suppress"
    elif x == 93:
        return "对应内容"
    else:
        return "Check"

df['AA'] = df['AA'].apply(get_aa_status)

2. 使用numpy.select(批量判断效率更高)

import numpy as np

conditions = [
    df['AA'].isin([1, 61]),
    df['AA'] == 90,
    df['AA'] == 93
]
choices = [
    "Suppression",
    "Dont Suppress",
    "对应内容"
]

df['AA'] = np.select(conditions, choices, default="Check")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 17:20:56