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

Python Pandas如何仅对不含指定字符串的单元格执行str.lower()

错误原因

你出现TypeError: 'Series' object is not callable报错的核心问题是没有调用Series对象的.apply()方法,直接对df["name"]加括号传入匿名函数属于非法语法。

正确实现方案

方案1:apply逐行处理(小数据量场景,写法简洁)

直接修正你原有写法的语法即可:

df["name"] = df["name"].apply(lambda x: str(x) if "Foo" in str(x) else str(x).lower())

方案2:向量化操作(大数据量场景,性能更优)

用pandas原生的字符串方法做批量判断和修改,避免逐行遍历的性能损耗:

# 构造布尔掩码:匹配所有不包含"Foo"的单元格,na=False用来处理空值避免判断报错
mask = ~df["name"].str.contains("Foo", na=False)
# 仅对匹配到的单元格执行转小写操作
df.loc[mask, "name"] = df.loc[mask, "name"].str.lower()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 18:27:03