首页 > 解决方案 > 打印python中出现次数最多的数据的名称和计数

问题描述

我需要在 csv 文件的列中打印出现次数最多的赛道名称。

我试过这个:

popular_course = (race_data.groupby(race_data.Race_Course.tolist(),as_index=False).size())
print(popular_course)

我的输出是:

Aintree        3
Ayr            6
Fairyhouse     3
Punchestown    3
Sandown        3
dtype: int64

当我将打印功能更改为:

print(popular_course.max())

我明白了:

6

我还需要 print 函数来打印 Race Course 的名称,所以它看起来像这样:

Ayr            6

如何让它包含赛马场的名称?

标签: pythongroup-bymax

解决方案


有很多方法可以解决这个问题。关键是热门课程是一个系列,因此您正在寻找最大值以及该最大值的相应索引。

使用您现有的方法:

race_courses_sized = race_data.groupby('Race_Course').size()
print(race_courses_sized[race_courses_sized == race_courses_sized.max()])

另一个版本

pd.DataFrame(race_data['Race_Course'].value_counts()).head(1)

推荐阅读