如何在一个 groupby 列上执行聚合选项,给出两列输出
Posted
技术标签:
【中文标题】如何在一个 groupby 列上执行聚合选项,给出两列输出【英文标题】:How to perform aggregate options on one groupby column, giving two column outputs 【发布时间】:2015-08-13 10:03:22 【问题描述】:我正在对 groupby 数据框执行一堆聚合统计信息。特别是对于一列ios_id
,我想要一个计数和一个不同的计数。我不确定如何将其输出到具有不同名称的两个独立列。截至目前,不同的计数只是覆盖计数。
如何将 ios_id 列的不同计数和计数输出到两个单独的列?
df_new = df.groupby('video_id').agg("ios_id": np.count_nonzero,
"ios_id": pd.Series.nunique,
"feed_position": np.average,
"time_watched": np.sum,
"video_length": np.sum).sort('ios_id', ascending=False)
【问题讨论】:
ios_id
是对要对其执行统计的列的引用。如果我更改名称,则没有什么可参考的。
【参考方案1】:
这样的事情应该可以工作。注意 iOS_id 的嵌套字典结构。
df_new = df.groupby('video_id').agg("ios_id": "count": "count",
"distinct": "unique",
"feed_position": np.average,
"time_watched": np.sum,
"video_length": np.sum)
更多详情请参考Naming returned columns in Pandas aggregate function:
【讨论】:
以上是关于如何在一个 groupby 列上执行聚合选项,给出两列输出的主要内容,如果未能解决你的问题,请参考以下文章
pyspark:groupby 和聚合 avg 和 first 在多个列上
Pandas Groupby:同一列上的聚合,但总计基于两个不同的标准/数据框
如何对 hsqldb 中的大表执行高效的 group by / sum 聚合?