熊猫 - 按ID分组并删除重复项

时间:2017-03-29 01:23:16

标签: python pandas

我有以下数据。

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 个答案:

答案 0 :(得分: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()