2016-04-13 3 views
2

Я успешно извлекаю и подсчитываю данные из своего фреймворка данных, но я бы хотел сортировать полученные результирующие значения.Python pandas sort groupby results

GroupBy фрагмент кода:

my_df.groupby('name').Id.nunique().head(5) 

Результаты:

Name 
nameA  4 
nameB  1 
nameC  1 
nameD  6 
nameE  2 

Но я хотел бы, чтобы упорядочить результаты следующим образом;

Name 
nameD  6 
nameA  4 
nameE  2 
nameB  1 
nameC  1 

Я предполагаю, что это должно быть прямолинейным, и я надеюсь, что кто-то может указать мне в правильном направлении.

+1

Возможно просто использовать [ 'DataFrame.sort_values'] (http://pandas.pydata.org/pandas-docs/version/0.17.1/generated/pandas.DataFrame.sort_values.html#pandas.DataFrame .sort_values) –

+0

Честно говоря, вы можете просто [использовать google] (https://www.google.ca/webhp?hl=ru#hl=ru&q=Python+pandas+sort+groupby+results) и, вероятно, найти свой ответ. –

ответ

2

Вам даже не нужна группа. Просто используйте value_counts().

>>> df.Name.value_counts() 
nameD 6 
nameA 4 
nameE 2 
nameC 1 
nameB 1 
Name: Name, dtype: int64 
+0

Это должно быть отмечено как ответ, если гарантированно будет один уникальный идентификатор для имени. – SpeedCoder5

+0

Отлично! Спасибо! – FunnyChef

1

Попробуйте с:

my_df.groupby('name').Id.nunique().sort_values(ascending=False) 
0

@ej_f - прямо на. Результаты для меня были забавны с nunique, поэтому я использовал счет вместо этого.

my_df.groupby('name').Id.count().sort_values(ascending=False) 
Смежные вопросы