我有一个包含以下列的数据框:['user_id', 'problem_id', 'timestamp']
。所以基本上谁解决了什么和何时。显然,有些用户解决了很多问题。
我想提取每个用户解决的最后一个问题。我的第一种方法是按user_id进行分组并得到最大值:df_s.groupby('user_id').max()[['problem_id']]
,但仔细观察之后,我意识到它只会返回用户解决的按字典排序最高的问题。
我显然也可以迭代groupby聚合,对数据帧进行排序并解决第一个问题,但我希望快速一个/几个衬里。
答案 0 :(得分:1)
如果你的timestamp
自然排序 - 即 - 最新值是最后一个,那么:
df_s.sort_values('timestamp').groupby('user_id').last()
应该为您提供您想要的内容,因为groupby
会保留其输入的分组顺序......