我有一个带有time_stamp和的数据user_id。
数据按user_id和排序time_stamp。
我想user_id在 7 天滚动间隔内计算每个7 天滚动间隔内的访问次数。如果访问次数 > 3,则将该 user_id 的新列设置为 1,否则为 0。
我的数据
time_stamp,user_id,visited
2014-04-22 03:53:30,1,1
2013-11-15 03:45:04,2,1
2013-11-29 03:45:04,2,1
2013-12-09 03:45:04,2,1
2013-12-25 03:45:04,2,1
2013-12-31 03:45:04,2,1
2014-01-08 03:45:04,2,1
2014-02-03 03:45:04,2,1 <- in a 7 day interval (till 2014-02-10)
2014-02-08 03:45:04,2,1 <- there is 3 visits
2014-02-09 03:45:04,2,1 <-
预期产出
user_id outcome
1 0
2 1
我试过的:
我不知道最好的方法来做到这一点。我的第一个想法是为每个user_id.
df['timediff'] = df.groupby(['user_id','time_stamp'])['time_stamp'].diff() / np.timedelta64(1, 'D')
但是这个输出给了所有的Nans。
2014-04-22 03:53:30 1 1 NaN
1 2013-11-15 03:45:04 2 1 NaN
2 2013-11-29 03:45:04 2 1 NaN
3 2013-12-09 03:45:04 2 1 NaN
4 2013-12-25 03:45:04 2 1 NaN
请问我应该如何更改算法?
桃花长相依
相关分类