假设这是我的数据帧:
country Edition sports Athletes Medal Firstname Score
Germany 1990 Aquatics HAJOS, Alfred gold Alfred 3
Germany 1990 Aquatics HIRSCHMANN, Otto silver Otto 2
Germany 1990 Aquatics DRIVAS, Dimitrios silver Dimitrios 2
US 2008 Athletics MALOKINIS, Ioannis gold Ioannis 1
US 2008 Athletics HAJOS, Alfred silver Alfred 2
US 2009 Athletics CHASAPIS, Spiridon gold Spiridon 3
France 2010 Athletics CHOROPHAS, Efstathios gold Efstathios 3
France 2010 Athletics CHOROPHAS, Efstathios gold Efstathios 3
France 2010 golf HAJOS, Alfred Bronze Alfred 1
France 2011 golf ANDREOU, Joannis silver Joannis 2
Spain 2011 golf BURKE, Thomas gold Thomas 3
我想知道哪个运动员的名字得分总和最大? 我尝试了以下方法: df。groupby ('Firstname')[Score].sum().idxmax() 这返回了运动员的名字但我想显示运动员的全名有人能帮我吗? 例如:我得到'Otto'作为输出,但我想显示HIRSCHMANN, Otto作为输出! 注:在我的原始数据集中,当我分组(“运动员”)时,我注意到答案是不同的。 问题来源StackOverflow 地址:/questions/59381933/how-to-find-the-full-name-of-athlete-in-this-case
idxmax只会给你第一行的最大值的索引。如果多个名共享最大得分,它会找到找到他们。 试试这个:
sum_score = df.groupby ('Firstname')['Score'].sum()
max_score = sum_score.max()
names = sum_score[sum_score == max_score].index
df[df['Firstname'].isin(names)]
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。