【问题标题】:Aggregate rows in Pandas DataFramePandas DataFrame 中的聚合行
【发布时间】:2018-04-16 11:07:41
【问题描述】:

我有带有以下列的 pandas DataFrame:

  1. VisitorID(每个用户唯一 - 基于 cookie)
  2. 访问次数(1 = 第一次访问,2 = 第二次访问等...)
  3. TimeSpentOnVist(访问时长,以秒为单位)
  4. 频道(访问的推荐人。例如:Facebook、Google 和 Bing)
  5. 媒体类型(付费或自然)

每次访问 (1, 2, 3) 都会重复访问者 ID。考虑到频道和媒体类型的最后一次访问,我想对其进行聚合,但同时,聚合(总结)所有访问所花费的时间。我的目标是按visitorID 分组,以免重复。

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

【问题讨论】:

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


    【解决方案1】:

    IIUC

    df.sort_values(['VisitNumber']).groupby('VisitorID').\
         agg({'TimeSpentOnVist':'sum','Channel':'last','Media type':'last'})
    

    【讨论】:

      【解决方案2】:

      Wen 回答了聚合问题,但我还要创建一个 MultiIndex 来组织 DataFrame:

       df.set_index(['VisitorID','VisitNumber']).sort_index()
      

      【讨论】:

        猜你喜欢
        • 2021-04-14
        • 1970-01-01
        • 2021-04-06
        • 2020-01-28
        • 2016-06-24
        • 2021-04-06
        • 2018-08-21
        • 1970-01-01
        相关资源
        最近更新 更多