我有一个包含以下列的pandas DataFrame:
- VisitorID (每个用户的唯一标识 – 基于cookie)
- VisitNumber (1 = 第一次访问, 2 = 第二次访问,等等…)
- TimeSpentOnVist (访问持续时间,单位为秒)
- Channel (访问的来源。例如:Facebook, Google 和 Bing)
- Media type (付费或自然流量)
每个访问(1, 2, 3)都会重复出现Visitor ID。我希望考虑最后一次访问的渠道和媒体类型进行聚合,同时将所有访问的时间累加。我的目标是按VisitorID分组,从而避免重复。
在Pandas中执行这种聚合操作的最有效方法是什么?
回答:
IIUC
df.sort_values(['VisitNumber']).groupby('VisitorID').\ agg({'TimeSpentOnVist':'sum','Channel':'last','Media type':'last'})