You need to enable JavaScript to run this app. 如何处理Pandas DataFrame,提取Step_ID列每个层级对应的最后一行
优惠活动
大模型
产品
解决方案
定价
更多

如何处理Pandas DataFrame,提取Step_ID列每个层级对应的最后一行

解决方案

Pandas有现成的内置方法可以直接实现需求,不需要额外写复杂逻辑,以下是两种常用的实现方式:

  • 方法1:groupby + tail(逻辑最直观,最推荐)
# 按Step_ID分组,取每个分组的最后1行
res = df1.groupby('Step_ID', as_index=False).tail(1)

tail(1)的参数代表取每个分组的最后N行,这里取1行刚好匹配需求,且会默认保留原始DataFrame的行顺序。

  • 方法2:drop_duplicates去重,指定保留最后一条
res = df1.drop_duplicates(subset='Step_ID', keep='last')

subset参数指定按Step_ID列判断重复值,keep='last'表示重复数据里只保留最后出现的那一条,最终效果和方法1完全一致。

两种方法运行后得到的结果都如下:

Step_ID  value_01
2   Step1       2.2
4   Step2       0.0
8   Step3       5.2

小提示:如果你的原始数据没有按业务规则排序,建议先按你需要的排序逻辑对DataFrame排序后再执行上述操作,确保取到的是你预期的「最后一行」。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.16 16:36:10