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

Pandas根据另一列值更新列时报KeyError: 'name'的问题排查

错误原因

  • 未指定apply遍历维度:pandas的apply方法默认按列遍历,此时传入lambda的参数x是单列Series,不存在name索引,因此抛出KeyError: 'name'。如果要按行遍历,必须添加axis=1参数。
  • else分支返回值错误:你在else分支返回了完整的df['action']列,而非当前行的action值,即便补全axis=1也无法得到正确结果。
  • 方法误用:第二种写法中x['name']是单个字符串,没有isin()方法(isin()为Series对象的专属方法),单值判断直接使用in关键字即可。

正确实现

写法1:修正apply逻辑(适用于复杂行级判断场景)

df['action'] = df.apply(lambda x: 'removed' if x['name'] in name_list else x['action'], axis=1)

写法2:向量化操作(性能更优,推荐优先使用)

无需调用apply做行遍历,直接通过布尔索引定位目标行修改即可,数据量较大时性能远高于行遍历方案:

df.loc[df['name'].isin(name_list), 'action'] = 'removed'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 07:12:02