我的pandas DataFrame包含以下列:
- VisitorID (每个用户都是唯一的 - 基于Cookie)
- VisitNumber (1 =首次访问,2 =第二次访问等等)
- TimeSpentOnVist (访问持续时间,以秒为单位)
- 频道(访问的推荐人。例如:Facebook,Google和Bing)
- 媒体类型(付费或有机)
醇>
每次访问(1,2,3)都会重复访客ID。考虑到频道和媒体类型的最后一次访问,我想汇总它,但同时,汇总(总结)所有访问的时间间隔。我的目标是按访客ID进行分组,这样就没有重复。
在Pandas中执行此聚合的最有效方法是什么?
答案 0 :(得分:3)
IIUC
df.sort_values(['VisitNumber']).groupby('VisitorID').\
agg({'TimeSpentOnVist':'sum','Channel':'last','Media type':'last'})
答案 1 :(得分:0)
Wen回答了聚合问题,但我还创建了一个MultiIndex
来组织DataFrame:
df.set_index(['VisitorID','VisitNumber']).sort_index()