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

Python使用lambda函数实现pandas DataFrame多字符串批量替换

错误原因

你写的代码中,apply() 传入的参数是 lambda x: x.replace(i, '') for i in ['+','-','tel:'],这是一个生成器表达式,而apply()要求传入可调用的函数对象,因此抛出对应类型错误。

一行代码实现方案

方案1:直接替换所有非数字字符(最简洁)

直接匹配所有非数字字符删除,完全匹配你的需求:

df['tel_no'] = df['tel_no'].str.replace(r'\D', '', regex=True)

方案2:按指定字符列表逐个替换

如果你需要严格按照你指定的['+','-','tel:']列表来替换,可借助functools.reduce在lambda内部实现循环替换:

from functools import reduce
df['tel_no'] = df['tel_no'].apply(lambda x: reduce(lambda cur, old: cur.replace(old, ''), ['+','-','tel:'], x))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 16:57:01