Obtención de los valores máximos del dataframe multindex de pandas

Estoy intentando recuperar solo los valores máximos (incluidos los valores de múltiples índices) de un dataframe de pandas que tiene múltiples índices. El dataframe que tengo se genera a través de una selección de grupo y columna (‘tOfmAJyI’) como esta:

df.groupby('id')['tOfmAJyI'].value_counts() Out[4]: id tOfmAJyI 3 mlNXN 4 SSvEP 2 hCIpw 2 5 SSvEP 2 hCIpw 1 mlNXN 1 11 mlNXN 2 SSvEP 1 ... 

Lo que me gustaría lograr es obtener los valores máximos, incluidos sus valores de índice correspondientes. Así que algo como:

 id tOfmAJyI 3 mlNXN 4 5 SSvEP 2 11 mlNXN 2 ... 

¿Alguna idea de cómo puedo lograr esto? Pude obtener el ID y el valor máximo, pero sigo intentando obtener el valor correspondiente de ‘tOfmAJyI’.

groupby + head

 df.groupby(level=0).head(1) Out[1882]: id tOfmAJyI 3 mlNXN 4 5 SSvEP 2 11 mlNXN 2 Name: V, dtype: int64 

O

 df.loc[df.groupby(level=0).idxmax()] Out[1888]: id tOfmAJyI 3 mlNXN 4 5 SSvEP 2 11 mlNXN 2 Name: V, dtype: int64 

Tuve el mismo problema con mi código, en lugar de usar max, ordene los valores por ‘ascendente = Falso’, luego use groupby (level = 0) .head (1). He proporcionado el código que funcionó para mí y luego una sugerencia para su código.

table = pd.pivot_table(df, index= ['Site', 'DayofWeek'], values= ['CTR'])

 table = table.sort_values(by = 'CTR', ascending = False) 

table.groupby(level=0).head(1)

Primero utilicé loc y .apply (max) o idxmax (), pero se produjo un error: “No se implementó la indexación de un índice múltiple con una clave DataFrame”. Así que para evitar esto usa el método sugerido.

Tu codigo-

table = df.groupby('id')['tOfmAJyI'].value_counts()

 table = table.sort_values(by = 'tOfmAJyI', ascending = False) table.groupby(level=0).head(1)