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

pandas使用.loc选取DataFrame单行触发KeyError如何解决

DataFrame示例截图

报错原因

df.loc[]是按行索引标签匹配查找的,报这个KeyError只有一个核心原因:Adam Henrique不在你当前表的行索引里。从截图可以看到,你现在的DataFrame用的是pandas默认生成的0开头整数序号当索引,球员名字是单独一列的内容,根本不是索引标签,自然查找失败。

解决方法

两种方案选一个适配自己的使用场景即可:

  • 不修改原有索引结构,直接按列值筛选
    先确认存储球员姓名的列名(比如列名为player),用布尔索引直接过滤目标行:
    # 将player替换为你表里实际存储球员姓名的列名
    df[df['player'] == 'Adam Henrique']
    
    如果想要和loc取单行一致的Series返回结果,在语句末尾加.squeeze()即可。
  • 将姓名列设为行索引,适配你原来的写法
    如果后续需要频繁按球员姓名取数,直接把姓名列设置为索引,之后就可以正常用loc按名字取值:
    # 将player替换为你表里实际存储球员姓名的列名
    df = df.set_index('player')
    # 执行完设置后,原语句df.loc["Adam Henrique"]可以正常运行
    
避坑提醒

如果按上面操作后仍然报相同的KeyError,优先检查姓名字符串是否带看不见的前后空格(数据导入时很容易出现这类问题),可以先做一次字符串清洗再操作:

df['player'] = df['player'].str.strip()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 05:39:13