我有一个包含以下列的数据框:['user_id', 'problem_id', 'timestamp']
。所以基本上是谁在什么时候解决了什么问题。显然有很多用户解决了很多问题。
我想提取每个用户最后解决的问题。我的第一种方法是按user_id分组并获得最大值:df_s.groupby('user_id').max()[['problem_id']]
,但在仔细观察之后,我意识到它只会返回用户解决的按字典顺序排序最高的问题。
我显然也可以遍历分组聚合,对数据框架进行排序并处理第一个问题,但我希望快速完成一个或几个行。
如果您的timestamp
自然排序-即最新值是最后的,则:
df_s.sort_values('timestamp').groupby('user_id').last()
应该给你你想要的,因为groupby
保留其输入的顺序分组…