【发布时间】:2018-10-26 16:29:27
【问题描述】:
我有以下挑战。我有以下数据框:defined_conversions
user_id pageviews conversion timestamp
1 3 True 08:01:12
1 4 False 07:02:14
1 7 False 08:02:14
2 2 True 10:12:15
2 2 False 05:12:18
我想要实现的是添加一个名为 sum_pageviews 的附加列,它获取每个用户的综合浏览量的累积总和。
我构建了这个函数来实现这个:
def pageviews_per_user(defined_conversions):
defined_conversions['sum_pageviews'] = defined_conversions.groupby(['user_id'])['pageviews'].cumsum
return defined_conversions
我担心的是数据框会是这样的:
user_id pageviews conversion timestamp sum_pageviews
1 3 True 08:01:12 14
1 4 False 07:02:14 14
1 7 False 08:02:14 14
2 2 True 10:12:15 4
2 2 False 05:12:18 4
我希望它看起来像:
user_id pageviews conversion timestamp sum_pageviews
1 3 True 08:01:12 3
1 4 False 07:02:14 7
1 7 False 08:02:14 14
2 2 True 10:12:15 2
2 2 False 05:12:18 4
所以本质上,综合浏览量应该在时间戳之后累积。在运行 cumsum 公式之前,我应该先按时间戳对数据进行排序吗?还是我应该做点别的?
ps:我是 python/pandas 的初学者
提前致谢!
【问题讨论】: