我有一个数据框,其中包含足球数据,其中包括球员姓名,俱乐部,国籍和等级。我已应用groupby
函数按俱乐部和国籍对数据进行分组,并计算了计数,最小值,最大值和平均值。
现在,我需要显示该俱乐部和最多俱乐部数目的国家。例如,霍芬海姆(Hoffenheim)有10名德国国民,这是俱乐部最多的人数。我该怎么办?
答案 0 :(得分:1)
我认为需要groupby
到idxmax
的第一级{{3}},然后按MultiIndex
选择行:
loc
详细信息:
df = pd.DataFrame({'club':list('AABBCC'),
'min':[4,5,4,5,5,4],
'mean':[7,8,9,4,2,3],
'max':[1,3,5,7,1,0],
'count':[5,3,6,9,2,4],
'nationality':list('aaabbb')}).set_index(['club','nationality'])
print (df)
min mean max count
club nationality
A a 4 7 1 5
a 5 8 3 3
B a 4 9 5 6
b 5 4 7 9
C b 5 2 1 2
b 4 3 0 4
df = df.loc[df.groupby(level=1)['count'].idxmax()]
print (df)
min mean max count
club nationality
B a 4 9 5 6
b 5 4 7 9