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

如何快速重构DataFrame:保留每个唯一ID对应最小col_5值的行?

高效实现按ID保留col_5最小值的方法

你的循环方案效率低是因为逐组遍历+多次数据切片/索引操作,Pandas的矢量化分组操作能大幅提升速度,以下两种方法都能高效处理62万行数据:

方法一:groupby + idxmin

利用groupby分组后,通过idxmin直接获取每个ID组中col_5最小值对应的行索引,再筛选数据:

# 获取每个col_1分组中col_5最小值的行索引
min_row_indices = data.groupby('col_1')['col_5'].idxmin()
# 提取目标行
cleaned_data = data.loc[min_row_indices]

方法二:排序去重

先按ID分组、col_5升序排序,再保留每个ID的第一行(即col_5最小的行):

# 按col_1分组,col_5升序排序,然后去重保留每个ID的首行
cleaned_data = data.sort_values(by=['col_1', 'col_5']).drop_duplicates(subset='col_1', keep='first')

这两种方法都是Pandas原生的矢量化操作,避免了循环中的重复数据查询,处理62万行数据的速度会比你的循环方案快几十到上百倍,完全能满足效率需求。如果同一ID下有多个行的col_5为最小值,两种方法都会保留第一个出现的行,符合你的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 11:21:07