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

使用Pandas Apply处理County列值:移除冗余后缀遇阻求助

解决Pandas apply()处理County Name列的后缀问题

嘿,我瞅出来你的函数只搞定了一半情况——能去掉普通的" County"后缀,但拿" County/city"这种复合后缀没办法对吧?咱们来调整下代码,让它能覆盖所有场景:

方案1:补全优化自定义函数

先把你没写完的函数完善好,针对性处理两种后缀:

def modify_county(countyname):
    # 先处理带/city的特殊后缀,再处理常规County后缀
    if " County/city" in countyname:
        return countyname.replace(" County/city", "")
    elif " County" in countyname:
        return countyname.replace(" County", "")
    else:
        return countyname  # 兜底返回原内容,避免无后缀的行出错

# 应用到你的DataFrame列上
df['County Name'] = df['County Name'].apply(modify_county)

跑这段代码后,你的三个示例值会变成:Riverside、San Diego、SanFrancisco,完全符合预期。

方案2:用正则表达式更高效(推荐)

如果以后可能遇到其他类似的后缀变体,用正则会更灵活,一次性搞定所有匹配:

# 直接用Pandas的str.replace,连apply都不用写
df['County Name'] = df['County Name'].str.replace(r" County(/city)?", "", regex=True)

这个正则的意思是:匹配" County",后面可选跟着"/city"的内容,然后把匹配到的部分替换为空。就算以后出现XX County/town这类格式,只要微调正则就能处理,扩展性更强。

为啥你的原函数没生效?

估计是你只判断了"/city"的存在,但没匹配完整的" County/city"后缀——比如可能只写了replace("/city", ""),这样处理SanFrancisco那行后会变成SanFrancisco County,而不是去掉整个后缀。所以必须精准匹配要移除的完整字符串才行。

内容的提问来源于stack exchange,提问作者Glenn G.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:32:28