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

如何在pandas多索引分组DataFrame中提取列最大值对应的索引

pandas提取分组后每组最大值对应的属性值方案

假设你已经通过groupby得到了每个选手、每种场地对应的获胜次数统计DataFrame,示例结构如下:

fullnamesurfacewin_count
Zuzana ZlochovaHard12
Zuzana ZlochovaClay5
Zuzanna BednarzClay9
Zuzanna BednarzHard3

你可以直接用pandas原生的排序+去重逻辑实现需求,全程无迭代,适合大数据量场景:

# 第一步:按选手名称升序、获胜次数降序排序
sorted_win_df = win_stat_df.sort_values(
    by=["fullname", "win_count"],
    ascending=[True, False]
)
# 第二步:去重保留每个选手的第一条记录,即获胜次数最多的场地
best_surface_df = sorted_win_df.drop_duplicates(
    subset="fullname",
    keep="first"
)[["fullname", "surface"]]
# 第三步:重命名列符合输出要求
best_surface_df = best_surface_df.rename(columns={"surface": "best_surface"})

如果遇到同一个选手多个场地获胜次数并列最高的情况,可以调整规则适配:

  • 保留所有并列结果:将drop_duplicates替换为groupby("fullname").head(N),N为你要保留的前N个并列项
  • 按固定优先级选择场地:可以在sort_values的by参数中增加场地排序规则,比如by=["fullname", "win_count", "surface"],按场地名称首字母排序选优先级高的

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 20:24:01