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

Python获取CSV分组后结果列表最长ID的方法求助

问题:找出分组后result列表最长的id

我有一个包含id和result两列的CSV文件,同一个id可重复出现,对应result值可能相同或不同。希望按id分组后,找出对应result列表长度最长的id。

已完成分组代码:

grouped_data = data.groupby('id')['result'].apply(list)

得到的grouped_data是pandas.core.series.Series类型,不知道怎么获取各列表长度,请求帮助。

输入CSV示例:

id, result
Test10001, 400
Test10001, 404
Test10001, 200
Test10002, 404
Test10002, 404 
Test10003, 400 

分组后输出:

id
Test10001    [400, 404, 200]
Test10002    [404, 404]
Test10003    [400]

解决方案

方法1:基于已有的grouped_data计算长度

对grouped_data调用str.len()即可直接获取每个列表的长度,再通过idxmax()找到长度最大对应的id:

# 计算每个id对应的result列表长度
length_series = grouped_data.str.len()

# 找出长度最大的id及对应长度
max_length_id = length_series.idxmax()
max_length = length_series.max()

print(f"列表最长的id是{max_length_id},长度为{max_length}")

运行后输出:列表最长的id是Test10001,长度为3

方法2:直接分组计数(更高效)

如果不需要保留result的列表内容,直接用size()分组统计次数更高效,避免生成列表的额外开销:

# 按id分组,统计每个id的记录数
count_series = data.groupby('id').size()

# 找出计数最大的id及对应长度
max_length_id = count_series.idxmax()
max_length = count_series.max()

print(f"列表最长的id是{max_length_id},长度为{max_length}")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 12:55:08