Python 根据值_计数和升序值显示分组结果

Python 根据值_计数和升序值显示分组结果,python,pandas,pandas-groupby,Python,Pandas,Pandas Groupby,输出: 运动队 highest_medals_countries = olympics_merged.groupby(['Sport'])['Team'].value_counts() highest_medals_countries.sort_values(ascending = False)[:10] 在上面的输出中,我将基于体育项目的奖牌数量最多的团队叠加在一起,但当我查看输出时,体育项目将基于价值计数。我怎样才能摆脱这种状况,让各国在田径、体操、游泳等项目上齐头并进呢 预期产出为: A

输出: 运动队

highest_medals_countries = olympics_merged.groupby(['Sport'])['Team'].value_counts()
highest_medals_countries.sort_values(ascending = False)[:10]
在上面的输出中,我将基于体育项目的奖牌数量最多的团队叠加在一起,但当我查看输出时,体育项目将基于价值计数。我怎样才能摆脱这种状况,让各国在田径、体操、游泳等项目上齐头并进呢

预期产出为:

Athletics   United States    3202
            Great Britain    2240
Gymnastics  United States    1939
Swimming    United States    1622
Gymnastics  France           1576
Athletics   France           1494
Gymnastics  Italy            1345
Swimming    Great Britain    1291
Athletics   Germany          1254
Gymnastics  Hungary          1242

通过在堆叠的数据帧上运行
sort_values
,您可以强制它按值对整个数据帧进行排序,而这些值首先已经在类别中进行了排序。因此,不要运行最高奖牌国家。对值进行排序(升序=False)[:10]就可以了。

只运行最高奖牌国家。总和(级别=0)。或者从您的原始数据
olympics\u merged['Sport'].value\u counts()
。但在这两者之间还有一个团队。你如何利用这些数据来解决这个问题。你对上述数据的预期结果是什么?我已经更新了帖子。只需检查预期输出,但如果我删除,我会得到所有运动的值。但我需要特定运动的价值观。我该怎么做呢?最简单的解决方案是在运行groupby之前删除不需要的体育项目行。或者,您可以在groupby之后使用一种解决方案。
 Sport       Team         
Athletics   United States    3202
            Great Britain    2240
            France           1494
Gymnastics  United States    1939
            France           1576
            Italy            1345
            Hungary          1242
Swimming    United States    1622  
            Great Britain    1291    
Athletics   Germany          1254