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

获取DataFrame中每个ID对应的最新timestamp记录

筛选DataFrame中每个ID的最新时间戳记录

假设你的DataFrame已加载为df,若timestamp列还不是datetime类型,需先转换格式,下面是几种高效实现需求的方法:

方法1:排序后分组取最后一行

先按Id升序、timestamp降序排序,再按Id分组并保留每组第一行(即最新记录):

# 转换timestamp为datetime类型(按需执行)
df['timestamp'] = pd.to_datetime(df['timestamp'])

# 排序+分组提取最新记录
result = df.sort_values(['Id', 'timestamp'], ascending=[True, False]) \
           .groupby('Id') \
           .first() \
           .reset_index()

方法2:使用groupby+idxmax

通过idxmax获取每组中最大timestamp对应的行索引,再提取目标行:

df['timestamp'] = pd.to_datetime(df['timestamp'])

# 获取每组最新记录的索引
max_idx = df.groupby('Id')['timestamp'].idxmax()

# 提取对应行数据
result = df.loc[max_idx].reset_index(drop=True)

方法3:用drop_duplicates简化操作

先按timestamp降序排序,直接保留每个Id的第一条记录,最后按Id排序整理:

df['timestamp'] = pd.to_datetime(df['timestamp'])

result = df.sort_values('timestamp', ascending=False) \
           .drop_duplicates(subset='Id') \
           .sort_values('Id') \
           .reset_index(drop=True)

以上方法均可得到目标结果:

Id     timestamp   
W-001  2022-10-15 17:55:21
W-002  2022-11-11 15:12:57
W-003  2022-11-18 09:35:23

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 08:15:37