单层索引index中,我们可以轻松通过df.loc[index]来获取某一行数据,多重索引是怎么样来实现的呢,下面进行介绍。
1、行多层索引
1 import pandas as pd 2 3 df = pd.DataFrame({'class':['A','A','A','B','B','B','C','C'], 4 'id':['a','b','c','a','b','c','a','b'], 5 'value':[1,2,3,4,5,6,7,8]}) 6 df.set_index(['class', 'id'],inplace=True) 7
![](https://img2018.cnblogs.com/blog/1515651/201905/1515651-20190526230745713-540828700.png)
8 df.loc['A', :]
![](https://img2018.cnblogs.com/blog/1515651/201905/1515651-20190526230904427-1705945628.png)
1 #利用df.query()来取数
2 df.query('id == "a"')
![](https://img2018.cnblogs.com/blog/1515651/201905/1515651-20190526231312804-861708103.png)
1 将索引变成值
![](https://img2018.cnblogs.com/i-beta/1515651/202002/1515651-20200218194809459-1217366234.png)
获取多重索引的值,并赋值给定列
2、列多层索引
1 dfmi = pd.DataFrame([list('abcd'), 2 list('efgh'), 3 list('ijkl'), 4 list('mnop')], 5 columns=pd.MultiIndex.from_product([['one', 'two'], 6 ['first', 'second']])) 7 dfmi
8 dfmi['one']
9 dfmi['one']['second']
10 dfmi.loc[:, ('one', 'second')]