为每个用户

时间:2016-09-04 03:59:29

标签: pandas dataframe

我有一个包含以下列的数据框:['user_id', 'problem_id', 'timestamp']。所以基本上谁解决了什么和何时。显然,有些用户解决了很多问题。

我想提取每个用户解决的最后一个问题。我的第一种方法是按user_id进行分组并得到最大值:df_s.groupby('user_id').max()[['problem_id']],但仔细观察之后,我意识到它只会返回用户解决的按字典排序最高的问题。

我显然也可以迭代groupby聚合,对数据帧进行排序并解决第一个问题,但我希望快速一个/几个衬里。

1 个答案:

答案 0 :(得分:1)

如果你的timestamp自然排序 - 即 - 最新值是最后一个,那么:

df_s.sort_values('timestamp').groupby('user_id').last()

应该为您提供您想要的内容,因为groupby会保留其输入的分组顺序......