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)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • pyspark.sql模块 模块上下文 Spark SQL和DataFrames的重要类: pyspark.sql...
    mpro阅读 13,159评论 0 13
  • 羡慕别人有自己的梦想,羡慕别人可以做自己想要做的事情,羡慕别人…… 外面的雨越下越大,雨声也越来越清晰。而我的心,...
    贤子xz阅读 1,410评论 0 1
  • 最初知道《奇特的一生》,是通过罗振宇的《罗辑思维》节目,该书讲述苏联科学家柳比歇夫将自己的一生用时间来计划,每天都...
    3aeeb1d6d616阅读 4,624评论 6 13
  • 【R阅读原文片段】 用 woop 思维来克服拖延症有一位心理学家 加布里埃尔•厄廷根 发明了一套能够增加执行力的思...
    章银武之阅读 1,553评论 4 0
  • 当你飘飞舞蹈的时候 我仰望天际 问你来自哪里 你盘旋着笑而不语 当你悄然融化的时候 我看着潺潺的小溪, 问你将去向...
    艺文小舍阅读 1,391评论 15 15