熊猫:计算4天内2次访问的次数

时间:2018-04-28 02:21:26

标签: python pandas

我有一个Pandas DataFrame,thisIsTheDate,如下所示:

df

我正在尝试在4天窗口内的两个不同日期找到用户访问过的user_id, date_of_visit 1, 1/5/12 1, 1/6/12 2, 1/6/12 2, 1/11/12 2, 1/27/12 。因此,上面的正确输出只是user_id

从相关问题来看,我有:

[1]

上述代码的问题在于它没有解决用户在同一天访问过多次的可能性。如果我有:

df.groupby('user_id').filter(lambda x : x.set_index('date_of_visit').rolling('4d').count().gt(1).any()).user_id.unique()

上面的代码会输出user_id, date_of_visit 1, 1/5/12 1, 1/5/12 ,因为用户1在四天的时间内访问了两次。但是,我只想要在4天窗口内的两个不同日期访问过的用户。因此,用户1 不应包含在输出中。

知道如何修改以强制执行此约束吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

在运行代码之前,可能会删除基于user_iddate_of_visit的重复项:

df.drop_duplicates(['user_id', 'date_of_visit']).groupby('user_id').filter(lambda x : x.set_index('date_of_visit').rolling('4d').count().gt(1).any()).user_id.unique()