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

Pandas按date分组获取每日count最大值对应label的实现问题

解决方案

你之前的写法仅返回了分组后的最大值序列,没有关联原表的其他字段,以下是3种常用实现方案:

方案1:通过idxmax()直接取最大值对应行(最简洁,推荐)

该方法会直接提取每组count列最大值对应的行索引,一次性返回所有字段:

# 按date分组,取count最大值对应的行索引,再从原表中筛选对应行
result = dff.loc[dff.groupby('date')['count'].idxmax()].reset_index(drop=True)
print(result)

输出结果:

date label  count
0  2021-02-25     A      5
1  2021-02-26     A      6

方案2:排序后去重(适合自定义优先级场景)

如果存在同一天多个相同最大值的情况,可以通过排序规则调整优先返回的行:

# 先按count降序排序,再按date去重保留第一条记录,最后按日期排序
result = dff.sort_values('count', ascending=False)\
            .drop_duplicates('date')\
            .sort_values('date')\
            .reset_index(drop=True)

方案3:返回所有并列最大值记录(适合多最大值场景)

如果需要返回同一天内所有count等于最大值的记录,可以用transform做匹配:

# 先给每行拼接对应日期的最大值,再筛选匹配的记录
dff['max_count'] = dff.groupby('date')['count'].transform('max')
result = dff[dff['count'] == dff['max_count']].drop(columns='max_count').reset_index(drop=True)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 16:18:03