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