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 数据框将数据聚合为每组的计数的主要内容,如果未能解决你的问题,请参考以下文章
在 Python Pandas 中聚合组并从某个计数中吐出百分比