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

如何在DataFrame中按分级获取对应最高分的影片标题?

解决方案

你的问题出在groupby('rating').max()会对每列单独取最大值,字符串类型的title列会返回字典序最大的字符串,而非对应最高分的影片标题。以下是两种无需循环的高效解决方法:

方法一:排序后去重

先按分级升序、分数降序排序,再保留每个分级的第一条记录(即最高分影片):

# 按rating升序、score降序排序,确保每组最高分在最上方
movie_df_sorted = movie_df.sort_values(by=['rating', 'score'], ascending=[True, False])
# 保留每个rating的第一条记录,自动剔除同分级的其他低分行
top_movies = movie_df_sorted.drop_duplicates(subset='rating', keep='first')
# 整理为预期的输出格式
result_str = ', '.join([f"{row['rating']} : {row['title']}" for _, row in top_movies.iterrows()])
print(result_str)

方法二:用idxmax定位最高分索引

利用idxmax()获取每个分级中分数最高的行索引,再通过索引提取对应记录:

# 获取每个rating分组中score最大值对应的行索引
max_score_idx = movie_df.groupby('rating')['score'].idxmax()
# 根据索引提取对应的影片记录
top_movies = movie_df.loc[max_score_idx]
# 整理输出
result_str = ', '.join([f"{row['rating']} : {row['title']}" for _, row in top_movies.iterrows()])
print(result_str)

两种方法都能保证获取每个分级下与最高分关联的正确标题,且符合你“无循环”的要求。

内容的提问来源于stack exchange,提问作者lowrain

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 07:40:32