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

使用loc从pandas DataFrame提取单元格值出现KeyError该如何解决

问题原因

你触发KeyError的核心是:筛选得到的Series/子DataFrame会继承原始DataFrame的行索引,你筛选出的B列对应行的原始索引为1,你用不存在的索引0去取值自然会报错。你输出oneline['B']的时候开头的1就是这行数据的索引值,不是位置序号。

可行的提取方法
  • 按位置取,不需要关注索引值,适合不知道具体索引的场景:
# 方法1:用iloc按位置取第一个值
print(oneline['B'].iloc[0])

# 方法2:转成numpy数组后取第一个元素
print(oneline['B'].to_numpy()[0])
  • 直接提取标量,适合确定筛选结果只有1行的场景(最简洁):
print(oneline['B'].item())
  • 如果你明确知道索引值为1,也可以用正确的索引取值(通用性差,不推荐):
print(oneline['B'].at[1])
优化写法

你可以把两步筛选合并为一步,直接拿到目标值:

target = df.loc[(df['A'] == 1) & (df['C'] == 5), 'B'].item()
print(target)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 09:45:02