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)

你可能感兴趣的:(groupby取最大值对应的行)