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

正则匹配XLS产品名称时存入数组的是Lambda函数对象该如何解决

问题修复方案

错误原因

你当前代码中products.append(lambda x : labeler(x))是将匿名函数对象本身添加到了数组中,既没有执行函数逻辑,也没有传入遍历得到的产品名称参数,因此打印结果全是函数内存地址。

修复方法

方案1:直接调用匹配函数(最推荐,易读性高)

直接将遍历到的产品名称传入labeler函数执行,把返回的匹配结果加入数组即可:

products = []
for x in df['Product Name']:
    products.append(labeler(x))
print(products)

方案2:Pandas向量化写法(适合数据量较大的场景)

不需要手动写循环,直接调用apply方法批量处理,性能更高:

products = df['Product Name'].apply(labeler).tolist()

可选优化:返回匹配字符串而非匹配对象

当前labeler函数返回的是re.Match匹配对象或者None,如果你需要直接拿到匹配到的字符串,可以修改函数逻辑:

def labeler(product):
    recognized_pattern = re.search(r"abc\w+(\s)?\w+(.|\s)?\w+", product, re.IGNORECASE)
    # 匹配成功返回对应字符串,匹配失败返回None
    return recognized_pattern.group() if recognized_pattern else None

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.18 23:54:04