应用熊猫分组功能后如何分析数据?



我有一组奥运会奖牌获得者。我试图找到奖牌最多的国家。应用分组功能后,我该如何处理该系列?

这是我的数据框。

    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 系列?

例如,我怎样才能以最多的奖牌返回国家?如果我在没有"金牌"限制的情况下分组,如何计算每个国家的奖牌总数?

您需要先过滤掉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

最新更新