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

Pandas技术问题:设置索引标签后无法用loc访问数据

问题根源

你调用df.set_index('country')时,并没有修改原DataFrame。Pandas的多数方法默认返回一个新的对象,而不会改动原数据——你看到的输出是该方法返回的新DataFrame,但原df的索引仍然是默认的数字序列,所以用loc['usa']会触发KeyError。

解决方案

有两种方式可以解决这个问题:

  • 重新赋值给原变量:将set_index返回的新DataFrame覆盖原df
    df = df.set_index('country')
    # 此时可以正常查询
    df.loc['usa'].forex
    
  • 使用inplace=True参数:直接在原DataFrame上修改索引
    df.set_index('country', inplace=True)
    df.loc['usa'].forex
    

修改完成后,df.index会变为country列的取值,此时loc就能通过文本标签正确定位到目标行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 04:15:56