我有以下数据。
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,因为他查看过不同时间戳的项目。
任何人都可以帮助我吗?
答案 0 :(得分:1)
选项1
使用duplicated
dropid = df.loc[
df.duplicated(subset=['userid', 'timestamp']),
'userid'
].unique()
df[~df.userid.isin(dropid)]
选项2
使用groupby
和filter
df.set_index(['userid', 'timestamp']).groupby(level=0).filter(
lambda x: ~x.index.is_unique
).reset_index()