2012-08-26 10 views
19

Próbuję dowiedzieć się, jak sortować wyniki pandas.DataFrame.groupby.mean() w inteligentny sposób.pandy - jak posortować wynik DataFrame.groupby.mean()?

wygenerować agregacji moim DataFrame takiego:

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

ja teraz staram się to rozwiązać przez wartość, ale pojawia się błąd:

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

Następnie spróbuj utworzyć kopię:

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

Jak mogę uzyskać ten rodzaj pracy?

Odpowiedz

27

Spróbuj użyć order, tj means = means.order()

+5

Wszystko to .sort_index(), .argsort() i tak dalej, jest bardzo mylące ... doc nie mówi wiele ... – smci

+0

Zgadzam się z @smci. Jeśli ktokolwiek mógłby edytować tę odpowiedź, aby to lepiej wyjaśnić, byłoby to bardzo cenne. Wpadłem na ten problem z serią wybraną z ramki danych (w przeciwieństwie do czegoś z groupby). –

+1

Możesz użyć '.sort (inplace = False)', który jest równoważny '.order()'. Różnica polega na tym, że 'order' tworzy nowy obiekt Series, a' sort' domyślnie nie. – NeoJi

Powiązane problemy