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

如何为已排序的Pandas DataFrame添加标记最新版本的Last列?

给分组排序后的DataFrame标记最新版本行

已知你的DataFrame已通过df.sort_values(['Code', 'Rev'], ascending = [True,False])完成按Code升序、Rev降序的排序,现在要新增Last列,标记每个Code分组中Rev最大的行为OK,其余为NOK,这里提供两种简单实现方式:

方法一:利用排序后的重复值特性(高效贴合当前排序场景)

因为已经按Code分组并将Rev降序排列,每个Code分组的第一行就是Rev最大的行,后续行都是同Code但Rev更小的。可以用duplicated()方法标记重复的Code行,再映射为OK/NOK:

df['Last'] = df.duplicated('Code').map({True: 'NOK', False: 'OK'})

方法二:不依赖排序的通用方法

如果后续可能调整排序逻辑,也可以用分组取最大值的方式,不依赖当前排序状态:

df['Last'] = df.groupby('Code')['Rev'].transform(lambda x: x == x.max()).map({True: 'OK', False: 'NOK'})

效果验证

原始DataFrame:

CodeTimeRev
AAA53
AAA32
AAA61
BBB102
BBB51

执行代码后得到目标DataFrame:

CodeTimeRevLast
AAA53OK
AAA32NOK
AAA61NOK
BBB102OK
BBB51NOK

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 16:06:26