pandas 中的聚合和计数
Posted
技术标签:
【中文标题】pandas 中的聚合和计数【英文标题】:aggregating and counting in pandas 【发布时间】:2021-10-01 12:36:15 【问题描述】:对于下面的df
group participated
A 1
A 1
B 0
A 0
B 1
A 1
B 0
B 0
我想计算组列中每个值的参与列中的值总数(groupby-count),然后计算每个组中有多少个 1
类似
group tot_participated 1s
A 4 3
B 4 1
我知道第一部分很简单,可以通过简单的方式完成
grouped_df=df.groupby('group').count().reset_index()
无法理解第二部分。任何帮助将不胜感激!
【问题讨论】:
【参考方案1】:您可以使用如下聚合跟随 groupby:
grp_df = df.groupby('group', as_index=False).agg('participated':['count','sum'])
grp_df.columns = ['group','tot_participated','1s']
grp_df.head()
在同一列上使用具有多个聚合函数的 .agg 需要注意的是,会创建一个多列索引。这可以通过在第 2 行中重置列名来解决。
【讨论】:
谢谢。你介意告诉我如何计算 0 的数量吗?我只问因为我没有看到第 1 行中提到值 1,并且无法理解 sum 函数如何计算 1 并忽略 0 在第 1 行,我们对每个 'group' 的 'participated' 列执行 2 次聚合,首先我们计算存在的值的数量,然后我们对组中的所有值求和(在此case 与计算每组中有多少个 1 相同)。这有帮助吗?我很快就会更新计数 0 的代码。以上是关于pandas 中的聚合和计数的主要内容,如果未能解决你的问题,请参考以下文章