开发者社区> 问答> 正文

在这种情况下如何找到运动员的全名?

假设这是我的数据帧:

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

展开
收起
kun坤 2019-12-27 17:23:00 332 0
1 条回答
写回答
取消 提交回答
  • 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)]
    
    2019-12-27 17:23:07
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Gululu重新定义儿童饮水习惯 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载