You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

循环实现:在DataFrame中获取各流派的热门歌手

解决方法:用Pandas快速获取各流派最热门歌手

不用写循环,Pandas的分组统计功能就能高效解决这个问题,假设歌手出现的频次代表受欢迎程度,直接按流派分组后统计歌手热度即可:

基础版(取每个流派热度最高的单个歌手)

# 按流派分组,统计每个流派内歌手的出现次数,取次数最多的歌手
top_singers = df2.groupby('genre')['singer'].apply(lambda x: x.value_counts().idxmax())

# 转成清晰的DataFrame格式查看
top_singers_df = top_singers.reset_index(name='top_singer')
print(top_singers_df)

代码说明:

  • groupby('genre'):把数据按流派分成不同的组
  • x.value_counts():统计当前流派下每个歌手的出现次数
  • idxmax():直接返回次数最多的歌手名称

进阶版(处理并列第一的情况)

如果同一个流派有多个歌手热度相同(并列第一),可以用下面的代码获取所有并列的歌手:

def get_top_singers(group):
    counts = group.value_counts()
    max_count = counts.max()
    # 返回所有热度等于最高值的歌手列表
    return counts[counts == max_count].index.tolist()

# 按流派分组应用自定义函数
top_singers = df2.groupby('genre')['singer'].apply(get_top_singers)
print(top_singers)

这种写法比手动写循环简洁得多,而且Pandas的内置分组操作性能远优于Python循环,尤其是数据量较大的时候。

内容的提问来源于stack exchange,提问作者P.08

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 02:45:44