2016-09-04 20 views
0

我有一個數據幀,其中包含以下列:['user_id', 'problem_id', 'timestamp']。所以基本上誰解決什麼和什麼時候。顯然有用戶解決了很多很多問題。提取每個用戶的最後一個problem_id

我想提取每個用戶解決的最後一個問題。我的第一種方法是通過user_id進行分組並獲得最大值:df_s.groupby('user_id').max()[['problem_id']],但仔細觀察後,我意識到它只會返回用戶解決的最高字典順序問題。我也清楚地可以遍歷groupby聚合,排序數據框,並採取第一個問題,但我希望快速一個/幾個襯裏。

+0

所以' problem_id'不是一個整數呢?否則,'df_s.groupby('user_id')['problem_id']。max()'就是你在... –

+0

@NinjaPuppy它是一個十六進制字符串。但即使它是一個整數,max最有可能只是返回來自用戶解決的problem_ids列表中的最大整數,而不是最新的 –

+0

Ahhh okies - 得到了亞 –

回答

1

如果您timestamp各種自然 - 即 - 最新值是最後一個,則:

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

應該給你你想要的groupby什麼保持其分組輸入順序...

+0

謝謝,不知道最後一個聚合。 –

相關問題