使用 MultiIndex 迭代 DataFrame

给定以下 DataFrame:

In [11]: df = pd.DataFrame({'a':[1,1,1,2,2,3],'b':[4,4,5,5,6,7,],'c':[10,11,12,13,14,15]})

In [12]: df.set_index(['a','b'], inplace=True)

In [13]: df
Out[13]: 
      c
a b    
1 4  10
  4  11
  5  12
2 5  13
  6  14
3 7  15

你可以按 MultiIndex 的任何级别进行迭代。例如,level=0(你也可以按名称选择级别,例如 level='a'):

In[21]: for idx, data in df.groupby(level=0):
            print('---')
            print(data)      c
a b    
1 4  10
  4  11
  5  12      c
a b    
2 5  13
  6  14      c
a b    
3 7  15

你还可以按名称选择级别,例如`level =‘b’:

In[22]: for idx, data in df.groupby(level='b'):
            print('---')
            print(data)
---     
      c
a b    
1 4  10
  4  11      c
a b    
1 5  12
2 5  13      c
a b    
2 6  14      c
a b    
3 7  15