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

pandas groupby分组后如何保留最新日期记录去除重复行

实现方法

前置准备:先确认Selection Criteria (Date)列的排序逻辑和时间先后一致。如果是YYYY-MM格式的字符串可以直接使用,非标准时间格式建议先转成pandas datetime类型,转换代码如下:

import pandas as pd
df['Selection Criteria (Date)'] = pd.to_datetime(df['Selection Criteria (Date)'], format='%Y-%m')

方法1:排序后去重(推荐,大数据量性能更优)

核心逻辑是先按日期从小到大排序,再按两个联合主键列去重,保留每组最后一条(也就是日期最新的记录):

result = df.sort_values('Selection Criteria (Date)').drop_duplicates(
    subset=['Column 1', 'Column 2'],
    keep='last'
).reset_index(drop=True)

方法2:分组取最大值索引

核心逻辑是按联合主键分组后,直接取每组日期最大的行对应的索引,再筛选原表得到结果:

max_date_idx = df.groupby(['Column 1', 'Column 2'])['Selection Criteria (Date)'].idxmax()
result = df.loc[max_date_idx].reset_index(drop=True)

注意事项

  • 如果日期列是标准YYYY-MM格式的字符串,无需转datetime即可得到正确结果,因为该格式字符串的字典序和时间先后顺序完全匹配
  • 如果日期列存在空值,建议先通过df = df.dropna(subset=['Selection Criteria (Date)'])过滤无效记录后再做分组筛选,避免保留到日期为空的错误行
  • 数据量超过10万行时优先选择方法1,排序去重的执行效率比分组取索引高30%以上

结果验证

两种方法运行后得到的结果和预期完全一致:

Column 1Column 2Selection Criteria (Date)
AB2022-06
CD2022-06
EF2022-05

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 21:48:10