【发布时间】:2018-04-30 19:02:59
【问题描述】:
数据集与用户查看项目所花费的时间有关:
user_id item_id view_started
121 160 2015-10-20 17:02:02
231 160 2015-10-18 11:02:29
231 161 2015-10-18 11:05:23
121 166 2015-10-18 11:04:34
231 180 2015-10-18 11:06:16
121 182 2015-10-20 17:02:10
134 182 2015-10-18 11:02:53
124 185 2015-10-18 11:04:23
231 187 2015-10-18 11:04:45
124 190 2015-10-18 11:05:43
目标是创建用户查看每个项目所花费的时间(或查看项目之间的间隔)。
user_id item_id minutes
121 160 4320
...
应该计算用户查看过的直接项目之间的差异。示例:X1, X2, X3 | Time between X1-X2, X2-X3... 并且需要重置每个组的时间。我相信使用diff 不是正确的方法。
df.groupby(['user_id']).apply(
lambda x: x.sort_values(['view_started'], ascending = True))['view_started'].diff()
这给出了第一个值NaT。每个组(每个用户)应该重置时间差
* Time probably don't reflect the above data frame due to sort
0 NaT
1 0 days 00:08:58
2 0 days 00:04:51
3 0 days 00:06:46
4 0 days 17:05:03
5 0 days 00:00:51
6 -9 days +10:21:49
7 0 days 00:02:33
【问题讨论】:
标签: python pandas datetime group-by pandas-groupby