【发布时间】:2019-03-14 22:29:05
【问题描述】:
所以我一直在尝试失败并希望得到一些帮助。我想做的是
- 按用户分组并按时间戳排序(这是下面数据框的设置方式)
- 现在我想在第一次点击之前获取每个视图,并将其分组为具有最早时间戳的单个事件
- 或者,删除第一次查看和第一次点击之间的所有内容
- 如果他们没有点击,只有视图,则所有行都应该平铺成一行
在某些情况下,我们正在收集数据,但由于观看次数计算方式出现错误,每个新会话都会在会话开始时创建大量额外观看次数。
因此,出于这个原因,我们希望在点击之前删除所有视图,除了第一个视图。如果特定用户没有点击,那么唯一剩下的应该是第一个视图。不过,在第一次点击之后,视图就被正确收集了,所以我们想保留这些。
所以如果输入如下(使用整数作为时间戳更容易)
将熊猫导入为 pd
in = {'id': [123, 123, 123, 123, 234, 234,234, 234, 234, 234, 456, 456, 456],
'activity': ['view','view','click','click','view','view','view','click', 'view', 'click', 'view', 'view', 'view'] ,
'timestamp': [1, 2,3,4,1,2,3,4,5,6,1,2,3]}
pd.DataFrame(in)
输出应该是
out = {'id': [123, 123, 123, 234, 234, 234, 234, 456],
'activity': ['view','click','click','view','click','view', 'click', 'view'] ,
'timestamp': [1, 3,4,1,4,5,6,1,]}
pd.DataFrame(out)
如果有人有任何想法如何解决这个问题,将不胜感激!
【问题讨论】:
标签: python pandas dataframe timestamp