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

Pandas:按报表名称筛选最新更新行并保持Order列排序

实现方法

1. 转换时间列格式

原始Last Updated列是字符串类型,无法直接比较时间先后,先将其转为可运算的datetime类型:

df['Last Updated'] = pd.to_datetime(df['Last Updated'], format='%b %d %I:%M:%S %p')

2. 分组筛选最新行

借助pandas的分组功能,按Report Name分组后,直接提取每个组内Last Updated值最大(最新)的行:

latest_rows = df.loc[df.groupby('Report Name')['Last Updated'].idxmax()]

3. 按Order列排序

最后对筛选出的结果按Order列升序排列,得到和示例一致的输出:

final_df = latest_rows.sort_values('Order').reset_index(drop=True)

完整代码示例

import pandas as pd

# 处理时间列格式
df['Last Updated'] = pd.to_datetime(df['Last Updated'], format='%b %d %I:%M:%S %p')
# 提取每个报表的最新行
latest_df = df.loc[df.groupby('Report Name')['Last Updated'].idxmax()]
# 按Order列排序
final_df = latest_df.sort_values('Order').reset_index(drop=True)

# 打印结果
print(final_df)

这种方式完全依赖pandas的内置向量操作,不需要手动写循环,效率远高于逐行判断的方法,数据量越大优势越明显。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 18:30:59