groupby取最大值对应的行
问题描述:
对带有时间戳的数据做分组( groupby) 后向想取到每组时间 (或id) 最大的一条
解决:
1. 其中一种方法是:先groupby 取到最大时间(或id),然后再做left join 此法适用于sql
2. 首先对数据做排序,然后groupby 取到的就是时间(或id) 最大(小) 的一条
3. pandas的做法 原理同2
df.sort_values('时间', ascending=False).groupby('聚合字段', as_index=False).first()
4. 同理 需要取top N 数据
df.sort_values('时间', ascending=False).groupby('聚合字段', as_index=False).head(N)