Cómo consultar valores de columnas de índice MultiIndex en pandas

Ejemplo de código:

In [171]: A = np.array([1.1, 1.1, 3.3, 3.3, 5.5, 6.6])

In [172]: B = np.array([111, 222, 222, 333, 333, 777])

In [173]: C = randint(10, 99, 6)

In [174]: df = pd.DataFrame(zip(A, B, C), columns=['A', 'B', 'C'])

In [175]: df.set_index(['A', 'B'], inplace=True)

In [176]: df
Out[176]: 
          C
A   B      
1.1 111  20
    222  31
3.3 222  24
    333  65
5.5 333  22
6.6 777  74 

Ahora, quiero recuperar los valores de A:
Q1: en el rango [3.3, 6.6] - valor de retorno esperado: [3.3, 5.5, 6.6] o [3.3, 3.3, 5.5, 6.6] en el último caso inclusive, y [3.3, 5.5] o [3.3, 3.3, 5.5] si no.
Q2: en el rango [2.0, 4.0] - valor de retorno esperado: [3.3] o [3.3, 3.3]

Igual para cualquier otroMultiindex Dimensión, por ejemplo valores B:
Q3: en el rango [111, 500] con repeticiones, como el número de filas de datos en el rango - valor de retorno esperado: [111, 222, 222, 333, 333]

Más formal:

Supongamos que T es una tabla con las columnas A, B y C. La tabla incluyen filas Las celdas de la tabla son números, por ejemplo, A dobles, B y C enteros. Vamos a crear unMarco de datos De la tabla T, llamémosla DF. Vamos a establecer los índices de las columnas A y B del DF (sin duplicación, es decir, no hay columnas separadas A y B como índices, y separados como datos), es decir, A y B en este casoMultiindex.

Preguntas:

¿Cómo escribir una consulta en el índice, por ejemplo, para consultar el índice A (o B), por ejemplo, en el intervalo de etiquetas [120.0, 540.0]? Existen etiquetas 120.0 y 540.0. ¡Debo aclarar que solo me interesa la lista de índices como respuesta a la consulta!¿Cómo, pero en el caso de las etiquetas 120.0 y 540.0 no existen, pero hay etiquetas por valor inferior a 120, superior a 120 e inferior a 540 o superior a 540?En caso de que la respuesta para Q1 y Q2 fueran valores de índice únicos, ahora iguales, pero con repeticiones, como el número de filas de datos en el rango del índice.

Conozco las respuestas a las preguntas anteriores en el caso de columnas que no son índices, pero en el caso de los índices, después de una larga investigación en la web y experimentación con la funcionalidad depandas, No tuve éxito. El único método (sin programación adicional) que veo ahora es tener un duplicado de A y B como columnas de datos además del índice.

Respuestas a la pregunta(3)

Su respuesta a la pregunta