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

Pandas中apply多条件if-else语法错误排查求助

问题分析与修正方案

你的代码存在两个关键语法错误,导致触发SyntaxError:

  1. 字符串方法调用错误
    endswith是Python字符串的实例方法,必须通过目标字符串对象调用,原代码里x == endswith('Rural')的写法完全错误——既不需要用==做判断,也不能直接调用endswith而不绑定到字符串对象。正确的写法是x.endswith('Rural'),该方法会直接返回布尔值用于条件判断。

  2. 三元表达式语法不完整
    Python的三元表达式结构是结果1 if 条件1 else 结果2,链式嵌套的三元表达式需要保持完整的if-else逻辑链。原代码中第一个if后面没有对应的else就直接写第二个三元表达式,导致语法结构断裂。

修正后的代码

链式三元表达式写法

data['lga_code'] = data['lga'].apply(lambda x: 'Rural' if x.endswith('Rural') 
                                      else 'Urban' if x.endswith('Urban') 
                                      else 'other')

更易读的函数写法(推荐处理复杂逻辑时使用)

def classify_lga(x):
    if x.endswith('Rural'):
        return 'Rural'
    elif x.endswith('Urban'):
        return 'Urban'
    else:
        return 'other'

data['lga_code'] = data['lga'].apply(classify_lga)

另外,data.loc[:,'lga']可以简化为data['lga'],两者功能完全一致,后者更简洁。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 18:16:59