intervalo de tiempo en el segundo nivel de multiindex

pandas permite rebanar fresco en los índices de tiempo. Por ejemplo, puedo dividir un df para los meses de enero de 2012 a marzo de 2012 haciendo lo siguiente:

 df['2012-01':'2012-03'] 

Sin embargo, tengo un df dataframe con un índice múltiple donde el índice de tiempo es el segundo nivel. Parece que:

  ABCDE a 2001-01-31 0.864841 0.789273 0.370031 0.448256 0.178515 2001-02-28 0.991861 0.079215 0.900788 0.666178 0.693887 2001-03-31 0.016674 0.855109 0.984115 0.436574 0.480339 2001-04-30 0.120924 0.046013 0.659807 0.210534 0.694029 2001-05-31 0.788149 0.296244 0.478201 0.845042 0.437814 b 2001-01-31 0.497646 0.349958 0.223227 0.812331 0.975012 2001-02-28 0.542572 0.472267 0.276186 0.970909 0.138683 2001-03-31 0.960813 0.666942 0.069349 0.282741 0.127992 2001-04-30 0.491422 0.678742 0.048784 0.612312 0.713472 2001-05-31 0.718721 0.504403 0.069047 0.253682 0.836386 

Todavía puedo cortar usando el método anterior en cualquier nivel específico de la siguiente manera:

 df.loc['a']['2012-01':'2012-03'] 

Pero esto es solo para level0 == 'a' .

¿Cómo hago esto para todos los valores en el nivel level0 ? Espero algo como esto:

  ABCDE a 2001-01-31 0.864841 0.789273 0.370031 0.448256 0.178515 2001-02-28 0.991861 0.079215 0.900788 0.666178 0.693887 2001-03-31 0.016674 0.855109 0.984115 0.436574 0.480339 b 2001-01-31 0.497646 0.349958 0.223227 0.812331 0.975012 2001-02-28 0.542572 0.472267 0.276186 0.970909 0.138683 2001-03-31 0.960813 0.666942 0.069349 0.282741 0.127992 

Utilice pd.IndexSlice

 df.loc[pd.IndexSlice[:, '2001-01':'2001-3'], :] 

introduzca la descripción de la imagen aquí