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

Pandas使用.loc赋值时触发KeyError:无法用单个布尔值索引赋值

问题解决:Pandas筛选包含指定字符串的行并赋值

原代码报错原因

  • 'CDD1' in Base['col']返回的是单个布尔值(仅判断该值是否存在于整列中),而loc进行赋值操作时,需要的是与DataFrame行数匹配的布尔数组(标记每一行是否符合条件),因此触发KeyError: 'cannot use a single bool to index into setitem'。

正确实现方式

要筛选col列中包含字符串CDD1的所有行并给test列赋值abc,需使用Pandas的str.contains()方法生成匹配每行的布尔数组:

Base.loc[Base['col'].str.contains('CDD1'), 'test'] = "abc"

补充:处理缺失值

如果col列存在缺失值(NaN),可以添加na=False参数避免警告或错误(将缺失值视为不匹配):

Base.loc[Base['col'].str.contains('CDD1', na=False), 'test'] = "abc"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 09:01:14