Группировка максимального значения столбца в пандах - PullRequest
0 голосов
/ 04 мая 2018

Я пытаюсь сгруппировать свой набор данных по годам, у которых самый высокий общий обзор. Но когда я попытался использовать groupby nlargest, он возвращает только год и оценивает общий балл.

Например:

style | year | review_score
a     | 1990 | 4.0
b     | 1990 | 5.0
c     | 1990 | 4.2

Мой вывод должен быть

style | year | review_score
b     | 1990 | 5.0
c     | 1990 | 4.2

Я попробовал следующий подход:

v=style.groupby(by='review_year')['beer_style']['review_overall'].nlargest(3)

Пожалуйста, помогите мне

1 Ответ

0 голосов
/ 04 мая 2018

Я думаю, нужно set_index всех столбцов, которые должны быть в первую очередь:

v = style.set_index('style').groupby(by='year')['review_score'].nlargest(2).reset_index()
print (v)
   year style  review_score
0  1990     b           5.0
1  1990     c           4.2

И альтернативой является сначала сортировка по обоим столбцам с sort_values и вызовом GroupBy.head:

v = (style.sort_values(['year','review_score'], ascending=(True, False))
          .groupby(by='year').head(2))
print (v)
  style  year  review_score
1     b  1990           5.0
2     c  1990           4.2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...