2012-08-26 12 views
19

Estoy tratando de averiguar cómo ordenar los resultados de pandas.DataFrame.groupby.mean() de una manera inteligente.pandas: cómo ordenar el resultado de DataFrame.groupby.mean()?

genero una agregación de mi trama de datos de esta manera:

means = df.testColumn.groupby(df.testCategory).mean() 

ahora trato de resolver esto por valor, pero sale un error:

means.sort() 
... 
-> Exception: This Series is a view of some other array, to sort in-place you must create a copy 

entonces trato de crear una copia:

meansCopy = Series(means) 
meansCopy.sort() 
-> Exception: This Series is a view of some other array, to sort in-place you must create a copy 

¿Cómo puedo hacer que este tipo funcione?

Respuesta

27

Trate de usar order, es decir means = means.order()

+5

Todo esto .sort_index(), .argsort() y así sucesivamente es muy confuso ... doc no dice mucho ... – smci

+0

De acuerdo con @smci. Si alguien pudiera editar esta respuesta para explicarlo mejor, sería muy apreciado. Me encontré con este problema con una serie seleccionada de un marco de datos (a diferencia de algo de groupby). –

+1

Puede usar '.sort (inplace = False)', que es equivalente a '.order()'. La diferencia es que 'order' crea un nuevo objeto Series y' sort' no lo hace de forma predeterminada. – NeoJi

Cuestiones relacionadas