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')
,因此我唯一可以使用的索引是弱感染