tengo el siguiente pandas trama de datos con un MultiIndex (Z, A):Seleccionar los datos a un nivel particular de una MultiIndex
H1 H2
Z A
0 100 200 0.3112 -0.4197
1 100 201 0.2967 0.4893
2 100 202 0.3084 -0.4873
3 100 203 0.3069 NaN
4 101 203 -0.4956 NaN
Pregunta: ¿Cómo puedo seleccionar todos los elementos con A = 203? Intenté df[:,'A']
pero no funciona. Entonces me encontré this en la documentación en línea, así que trataron:
df.xs(203,level='A')
pero me sale:
"TypeError: xs() got an unexpected keyword argument 'level'
"
Además no veo este parámetro en el doc instalado (df.xs?
):
"Parámetros ---- ------ key: object Alguna etiqueta contenida en el índice, o parcialmente en un eje MultiIndex: int, default 0 Axis para recuperar la sección transversal en copy: boolean, default True Ya sea para hacer una copia de los datos "
Nota: Tengo la versión de desarrollo.
Editar: Encontré this thread. Recomiendan algo como:
df.select(lambda x: x[1]==200, axis=0)
todavía me gustaría saber lo que sucedió con df.xs con el parámetro de nivel o lo que es la forma recomendada en la versión actual.
Qué versión está utilizando? Aparentemente 'level' se agregó en [versión' 0.7.0'] (http://pandas.pydata.org/pandas-docs/dev/whatsnew.html#v-0-7-0-february-9-2012) . – Avaris
Bueno, aparentemente ese es el problema, estoy en 0.6.1, instalé desde git pero de alguna manera todavía estoy en 0.6.1, gracias, ¿debería cerrar la pregunta, si es así, cómo? – elyase
Puede escribir una respuesta con el motivo del problema y la solución alternativa y aceptarlo. – Avaris