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

在lambda函数中使用列表推导式处理pandas n-gram列时报错如何解决?

问题修复方案

错误原因

你写的代码存在语法问题:列表推导式缺少外层方括号,代码会被识别为将生成器表达式直接传入apply方法,此时循环变量row超出lambda的作用域范围,因此触发NameError。

修复代码

将列表推导式用方括号包裹即可,正确写法如下:

data['n_grams'] = data['n_grams'].apply(lambda row: [" ".join(x) for x in row])

如果你的数据中存在单元素元组被识别为普通字符串的情况(比如(thanks)没有加逗号会被python判定为字符串而非元组),可以用下面的兼容写法:

data['n_grams'] = data['n_grams'].apply(lambda row: [" ".join(x) if isinstance(x, tuple) else x for x in row])

效果验证

运行上述代码后,n_grams列的每个元组都会被拼接为空格分隔的字符串,最终输出和你预期的格式完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 02:45:00