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

访问pandas MultiIndex多层索引DataFrame报AttributeError如何解决

报错原因

你使用的df1.English点式访问语法,在Pandas中仅适用于访问列名对应的列数据,而你构造的df1中English是第一级行索引的取值,并不是列名,因此会触发属性不存在的报错。

正确实现方案
  • 方法1:使用.loc索引器(最推荐,写法简洁)
    针对多级行索引,直接在.loc中指定第一级索引的取值即可,默认会匹配所有第二级索引、所有列:
print(df1.loc['English'])
# 等价写法,显式指定全选列
# print(df1.loc['English', :])
  • 方法2:使用xs方法提取指定层级索引的行
    如果需要明确指定匹配的索引层级,适合多级索引层级较多的场景,可以用xs方法,level=0表示匹配第一级行索引:
print(df1.xs('English', level=0))
  • 方法3:布尔索引过滤(适合复杂筛选逻辑)
    先通过get_level_values获取指定层级的所有索引值,再做布尔条件筛选,适合需要叠加多个筛选条件的场景:
print(df1[df1.index.get_level_values(0) == 'English'])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 01:15:04