Python 创建多索引后如何访问列

Python 创建多索引后如何访问列,python,pandas,dataframe,multi-index,Python,Pandas,Dataframe,Multi Index,我正在使我的数据帧如下所示: influenza_data = pd.DataFrame(data, columns = ['year', 'week', 'weekly_infections']) weekly_infections year week 2009 40 6600 41 7100 42 7700 43

我正在使我的
数据帧
如下所示:

influenza_data = pd.DataFrame(data, columns = ['year', 'week', 'weekly_infections'])
          weekly_infections
year week                  
2009 40                6600
     41                7100
     42                7700
     43                8300
     44                8600
...                     ...
2019 10                8900
     11                6200
     12                5500
     13                3900
     14                3300
然后我从
year
week
列创建
MultiIndex

influenza_data = influenza_data.set_index(['year', 'week'])
如果我有
多索引
我的
数据帧
如下所示:

influenza_data = pd.DataFrame(data, columns = ['year', 'week', 'weekly_infections'])
          weekly_infections
year week                  
2009 40                6600
     41                7100
     42                7700
     43                8300
     44                8600
...                     ...
2019 10                8900
     11                6200
     12                5500
     13                3900
     14                3300
数据列

Index(['weekly_infections'], dtype='object')
我的问题是现在无法访问
year
week

如果我尝试
data\u流感['week']
year
我会得到
keyrerror:'week'
。我只能做
data\u流感。每周感染
,然后返回一个完整的
DataFrame


我知道如果我删除了
多索引
,我可以很容易地访问它们,但为什么我不能用
多索引
访问
数据?年份
?我在创建
数据框时指定了

,正如Pandas文档所述,您可以通过
获取级别值(索引)
方法访问
多索引
对象级别:

influenza_data.index.get_level_values(0)    # year
influenza_data.index.get_level_values(1)    # week

显然,
index
参数表示索引的顺序。

您可以使用
df.loc[2009,:]
df.query(“year==2009”)
df.query(“year==2009,week==40”)访问多索引。
。。。有很多选择。你可以看一看@sammywemmy什么是
df['year']
来获得整个
year
列?我不太明白。
year
已经是一个索引,所以你应该拥有所有的年份。
year
不是一个索引,这让我很困惑。我发布了我的
数据\u流感.列
,它只显示
索引(['weekly\u infectures',dtype='object')
,因此我唯一可以使用的索引是
弱感染