为每个用户提取最后一个problem_id



我有一个包含以下列的数据框:['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保留其输入的顺序分组…

最新更新