Ho la seguente Panda dataframe con un MultiIndex (Z, A):Selezionare i dati a un particolare livello da un 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
Domanda: Come posso selezionare tutti gli elementi con A = 203? Ho provato df[:,'A']
ma non funziona. Poi ho trovato this nella documentazione in linea così ho provato:
df.xs(203,level='A')
ma ottengo:
"TypeError: xs() got an unexpected keyword argument 'level'
"
Anche io non vedo questo parametro nel documento installato (df.xs?
):
"Parametri ---- ------ key: object Alcune etichette contenute nell'indice, o parzialmente in un asse MultiIndex: int, default 0 Axis per recuperare la sezione trasversale su copy: boolean, default True Se creare una copia dei dati "
Nota: ho la versione di sviluppo.
Modifica: Ho trovato this thread. Essi raccomandano qualcosa come:
df.select(lambda x: x[1]==200, axis=0)
io ancora vorrei sapere cosa è successo con df.xs con il parametro del livello o che cosa è il metodo consigliato nella versione corrente.
Quale versione stai usando? Apparentemente 'level' è stato aggiunto a [versione' 0.7.0'] (http://pandas.pydata.org/pandas-docs/dev/whatsnew.html#v-0-7-0-february-9-2012) . – Avaris
Bene apparentemente questo è il problema, sono su 0.6.1, ho installato da git ma in qualche modo sono ancora su 0.6.1, grazie, dovrei chiudere la domanda, se sì, come? – elyase
È possibile scrivere una risposta con il motivo del problema e una soluzione alternativa e accettarla. – Avaris