2017-03-29 47 views
0

我有以下數據。熊貓 - 通過ID和丟失重複組

userid itemid timestamp 
    1  1  50 
    1  2  50 
    1  3  50 
    1  4  60 
    2  1  40 
    2  2  50 

我想刪除具有重複時間戳的用戶。 在我上面的示例中,我想刪除userid = 1,因爲他在timestamp = 50時查看了多個項目。因爲他已經查看了不同時間戳中的項目,所以不應該刪除userid = 2。

任何人都可以幫助我嗎?

回答

1

選項1
使用duplicated

dropid = df.loc[ 
    df.duplicated(subset=['userid', 'timestamp']), 
    'userid' 
].unique() 
df[~df.userid.isin(dropid)] 

選項2
使用groupbyfilter

df.set_index(['userid', 'timestamp']).groupby(level=0).filter(
    lambda x: ~x.index.is_unique 
).reset_index()