es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cortar un MultiIndex

Quiero cortar un MultiIndex hasta la etiqueta NY para el primer nivel y desde la etiqueta 8 en adelante para el segundo nivel. ¿Cómo puedo hacer esto?

Aquí está el MultiIndex:

enter image description here

La salida debería ser así:

VA  8  Value
    9  Valor 
MD  8  Valor
    9  Valor
NY  8  Valor
    9  Valor

A continuación se muestra el código utilizado para generar el MultiIndex:

estados = ['VA', 'MD', 'NY', 'NJ', 'TX']
cd = lista(range(10))
idx = pd.MultiIndex.from_product([estados, cd])
s = pd.Series(np.random.rand(50), index=idx)
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para cortar el MultiIndex hasta la etiqueta NY para el primer nivel y desde la etiqueta 8 en adelante para el segundo nivel, podemos utilizar el accesor loc con una tupla de cortes.

    El primer corte especifica el rango hasta NY para el primer nivel, y el segundo corte especifica el rango desde la etiqueta 8 en adelante para el segundo nivel.

    El código para lograr esto es:

    result = s.loc[(:'NY', 8:)]
    

    Aquí, : se utiliza para indicar todas las etiquetas hasta una etiqueta particular, y : nuevamente se utiliza para indicar todas las etiquetas desde una etiqueta particular hasta el final.

    La salida resultante es:

    VA  8    0.300165
        9    0.580193
    MD  8    0.593984
        9    0.935146
    NY  8    0.094276
        9    0.096023
    dtype: float64
    

    Lo cual coincide con la salida deseada.

Comments are closed.