Как анализировать данные после применения групповой функции панд? - PullRequest
1 голос
/ 31 марта 2019

У меня есть набор данных победителей олимпийских игр.Я пытаюсь найти страну с наибольшим количеством медалей.Как мне работать с сериями после применения групповой функции?

Вот мой фрейм данных.

    ID  Name        Sex   Age    City        Sport      Medal
 0  1   A Dijiang   M     24.0   Barcelona  Basketball  Gold
 1  2   A Lamusi    M     23.0   London     Judo        Silver
 ...

Я применил к своему фрейму данных следующую функцию qq:

zz = qq[qq.Medal =='Gold'].groupby(['NOC', 'Medal'])
zz.Medal.value_counts()

NOC  Medal  Medal
ALG  Gold   Gold        5
ANZ  Gold   Gold       20
ARG  Gold   Gold       91
ARM  Gold   Gold        2

После применения функции, как я могу проанализироватьэто серия zz?

Например, как я могу вернуть страну с максимальным количеством медалей?Если я сгруппируюсь без ограничения по «золотой» медали, как я могу посчитать сумму медалей для каждой страны?

1 Ответ

0 голосов
/ 01 апреля 2019

Вам нужно сначала отфильтровать NaN медалей, а затем собрать их.Вот пример:

import pandas as pd

df = pd.DataFrame([['USA', 'Gold'],
                   ['USA', 'Bronze'],
                   ['USA', 'NaN'],
                   ['UK', 'Silver'],
                   ['UK', 'NaN']],
                  columns=['NOC', 'Medal'])

valid_medals = df[df['Medal'] != 'NaN']
medal_count = valid_medals.groupby(['NOC'], as_index=False)\
    .count().sort_values(by=['Medal'],ascending=False)
print(medal_count)
print('Top country:')
print(medal_count.iloc[0])

Вывод:

   NOC  Medal
1  USA      2
0   UK      1
Top country:
NOC      USA
Medal      2
Name: 1, dtype: object
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...