在Pandas DataFrame中聚合行

时间:2017-11-03 16:34:16

标签: python python-3.x pandas machine-learning pandas-groupby

我的pandas DataFrame包含以下列:

  
      
  1. VisitorID (每个用户都是唯一的 - 基于Cookie)
  2.   
  3. VisitNumber (1 =首次访问,2 =第二次访问等等)
  4.   
  5. TimeSpentOnVist (访问持续时间,以秒为单位)
  6.   
  7. 频道(访问的推荐人。例如:Facebook,Google和Bing)
  8.   
  9. 媒体类型(付费或有机)
  10.   

每次访问(1,2,3)都会重复访客ID。考虑到频道和媒体类型的最后一次访问,我想汇总它,但同时,汇总(总结)所有访问的时间间隔。我的目标是按访客ID进行分组,这样就没有重复。

在Pandas中执行此聚合的最有效方法是什么?

2 个答案:

答案 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()