Как получить максимальные значения из pandas.value_counts для каждой переменной? - PullRequest
0 голосов
/ 29 мая 2019

Я на самом деле пытаюсь получить только максимальные значения за каждый год, возвращаемые функцией pandas.value_count ()?

Я пытался использовать функцию apply с лямбда-функцией, но безуспешно:

print(match_won_by_team.apply(lambda x : match_won_by_team[x].index[0]))


remove_duplicate_match_codes = data.drop_duplicates(subset='match_code', keep='first').reset_index(drop=True)

match_won_by_team = remove_duplicate_match_codes.groupby('year')['winner'].value_counts()

print('Match won by each team in respective seasons:- ', match_won_by_team)

Я ожидаю, что выходные данные отобразятся в 2008 году: Раджастхан Роялс: 13, 2009: Дели Сорвиголовы: 10 и т. Д. Из серии.

2008  Rajasthan Royals               13
      Kings XI Punjab                10
      Chennai Super Kings             9
2009  Delhi Daredevils               10
      Deccan Chargers                 9
      Royal Challengers Bangalore     9
2010  Mumbai Indians                 11
      Chennai Super Kings             9
      Deccan Chargers                 8

Я получаю эту ошибку, когда используюфункция применения и лямбда на нем.AttributeError: у объекта 'numpy.int64' нет атрибута 'index'

1 Ответ

0 голосов
/ 29 мая 2019

IIUC:

Я думаю, вам нужно использовать следующее:

remove_duplicate_match_codes.groupby('year')['winner'].apply(lambda x: x.value_counts().head(1))

Это будет применять значение_счета к каждой части победителей по году и использовать head для извлечения первой записи или победителя с наибольшим количеством очков в этом году.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...