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

Pandas .loc方法运行不符合预期:带条件可用直接调用为何报错

Pandas .loc方法两段代码运行差异原因解析

核心差异是.loc对行位置入参的不同类型有完全不同的处理逻辑:

  • 当入参是布尔序列时,.loc会当做行筛选规则使用
  • 当入参是数值/字符串序列时,.loc会当做行索引标签去匹配查找

第一段代码正常运行的原因

你代码中df['mynumbers'] <= 53不是直接返回原始数值列,而是逐行比较后生成的布尔类型Series,结构如下:

0     True
1     True
2     True
3    False
4    False
Name: mynumbers, dtype: bool

这是.loc支持的标准行筛选入参格式,会自动保留布尔值为True对应的行(索引0、1、2的行),再对这些行的mynumbers列赋值,完全符合调用规则,所以运行正常。

第二段代码报错的原因

直接传入df['mynumbers']时,入参是数值类型的Series,值为[51,52,53,54,55],此时.loc会把序列中的每个值当做行索引标签去匹配。
而示例DataFrame的默认行索引是[0,1,2,3,4],没有对应51、52这类数值的索引标签,因此触发KeyError。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 21:24:04