为了账号安全,请及时绑定邮箱和手机立即绑定

在 pandas 中对一列的条件进行分组并按原样获取其他列的记录

在 pandas 中对一列的条件进行分组并按原样获取其他列的记录

慕田峪4524236 2023-08-15 16:50:03
所以我的数据框看起来像这样 -ORD_ID|TIME|VOL|VOL_DSCL|SMBL|EXPABC123|2020-05-18 09:01:35|30|10|CHH|2020-05-20DEF123|2020-05-18 09:04:35|50|20|CHH|2020-06-19ABC123|2020-05-18 09:06:45|20|10|CHH|2020-05-20PQR333|2020-05-18 09:13:12|50|10|SSS|2020-06-19DEF123|2020-05-18 09:24:35|20|20|CHH|2020-06-19PQR333|2020-05-18 09:26:23|0|0|SSS|2020-06-19我想按 ORD_ID 分组。并获取该 ORD_ID 的最后一个记录(不对其他列执行任何聚合函数)。即所需的输出是 -ORD_ID|TIME|VOL|VOL_DSCL|SMBL|EXPABC123|2020-05-18 09:06:45|20|10|CHH|2020-05-20DEF123|2020-05-18 09:24:35|20|20|CHH|2020-06-19PQR333|2020-05-18 09:26:23|0|0|SSS|2020-06-19如何才能实现这一目标?(因此只有 TIME 中每个唯一 ORD_ID 的最后一条记录)
查看完整描述

1 回答

?
慕标5832272

TA贡献1966条经验 获得超4个赞

你不需要groupby,drop_duplicates会做:


df.sort_values('TIME').drop_duplicates('ORD_ID',keep='last')

或者如果你真的想要 groupby:


df.groupby('ORD_ID').tail(1)

输出:


   ORD_ID                 TIME  VOL  VOL_DSCL SMBL         EXP

2  ABC123  2020-05-18 09:06:45   20        10  CHH  2020-05-20

4  DEF123  2020-05-18 09:24:35   20        20  CHH  2020-06-19

5  PQR333  2020-05-18 09:26:23    0         0  SSS  2020-06-19


查看完整回答
反对 回复 2023-08-15
  • 1 回答
  • 0 关注
  • 65 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信