首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按另一列熊猫df分组的值发生之和

按另一列熊猫df分组的值发生之和
EN

Stack Overflow用户
提问于 2020-08-17 18:33:46
回答 2查看 46关注 0票数 0

我需要统计name列和industry列中每个值的出现情况。目标是得到每个行业每个名称的总和。我的数据如下:

代码语言:javascript
复制
industry            name
Home             Mike
Home             Mike,Angela,Elliot
Fashion          Angela,Elliot
Fashion          Angela,Elliot

期望的输出是:

代码语言:javascript
复制
Home Mike:2 Angela:1 Elliot:1
Fashion Angela:2 Elliot:2
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-08-17 18:46:42

将它从注释中移开,调试并证明是有效的:

代码语言:javascript
复制
# count() in the next line won't work without an extra column
df['name_list'] = df['name'].str.split(',')
df.explode('name_list').groupby(['industry', 'name_list']).count()

结果:

代码语言:javascript
复制
                    name
industry name_list      
Fashion  Angela        2
         Elliot        2
Home     Angela        1
         Elliot        1
         Mike          2
票数 1
EN

Stack Overflow用户

发布于 2020-08-17 18:48:46

您可以使用collections.Counter返回一系列字典,如下所示:

代码语言:javascript
复制
from collections import Counter
s = df.name.str.split(',').groupby(df.industry).sum().agg(Counter)

Out[506]:
industry
Fashion               {'Angela': 2, 'Elliot': 2}
Home       {'Mike': 2, 'Angela': 1, 'Elliot': 1}
Name: name, dtype: object

注意事项:每个单元格都是一个Counter对象。Counter是字典的子类,因此您可以将字典操作作为字典应用于它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63456715

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档