Pandas 数据框将数据聚合为每组的计数

Posted

技术标签:

【中文标题】Pandas 数据框将数据聚合为每组的计数【英文标题】:Pandas dataframe aggregating data into counts per group 【发布时间】:2021-08-19 14:07:10 【问题描述】:

我是 pandas 的新手,正在寻找一些关于如何重塑我的 pandas 数据框的建议:

目前,我有一个这样的数据框。

panelist_id type refer_sm refer_se refer_non_n
1 HP 1 0 0
1 HP 1 0 0
1 HP 0 0 1
1 PB 0 1 0
2 PB 0 1 0
2 PB 1 0 0
2 HP 1 0 0

理想情况下,我想按 panelist_id 分组,并按计数聚合其他列:

panelist_id type type_count refer_sm_count refer_se_count refer_non_n_count
1 HP 2 2 1 1
PB 1 0 1 0
2 HP 1 1 0 0
PB 2 1 1 0 0

我尝试使用 groupby 来按小组成员分组,这很有效,但是我在聚合部分有点卡住了。任何帮助将不胜感激。

【问题讨论】:

df.groupby(['panelist_id', 'type']).agg(type_count =('type', 'size'), refer_sm_count=('refer_sm', 'sum'), refer_se_count = ('refer_se', 'sum')) ? 工作,非常感谢! 酷。您可以关闭问题,使其不会显示为活动 【参考方案1】:

df.groupby(['panelist_id', 'type']).agg(type_count =('type', 'size'), refer_sm_count=('refer_sm', 'sum'), refer_se_count = ('refer_se' , '总和')) ?

【讨论】:

以上是关于Pandas 数据框将数据聚合为每组的计数的主要内容,如果未能解决你的问题,请参考以下文章

Pandas 数据透视表:按特定字符串的计数聚合函数

在 Python Pandas 中聚合组并从某个计数中吐出百分比

在 Python Pandas 中聚合组并从某个计数中吐出百分比

pandas 中的聚合和计数

用 Pandas 计数和排序

如何在熊猫中按值计数对列进行排序