首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >熊猫冷凝分组

熊猫冷凝分组
EN

Stack Overflow用户
提问于 2017-10-27 20:30:28
回答 2查看 95关注 0票数 0

我目前正在尝试使用Pandas中的groupby函数来聚合一些CSV数据。

这是我目前在CSV中的一个小样本:

代码语言:javascript
复制
Company,School,Number,Type
Adtelem Global Education Inc.,Carrington,3,For-Profit
Adtelem Global Education Inc.,Carrington,4,For-Profit
Adtelem Global Education Inc.,Carrington,1,For-Profit
Adtelem Global Education Inc.,Carrington,4,For-Profit
Adtelem Global Education Inc.,Carrington,3,For-Profit
Adtelem Global Education Inc.,Carrington,3,For-Profit
Adtelem Global Education Inc.,DeVry Institute of Technology,4,For-Profit
Adtelem Global Education Inc.,DeVry Institute of Technology,4,For-Profit
Adtelem Global Education Inc.,DeVry Institute of Learning,16,   For-Profit
Adtelem Global Education Inc.,DeVry Institute of Learning,9,    
Career Education Corporation,Le Cordon Blue College of Culinary Arts,6,For-Profit
Career Education Corporation,Le Cordon Blue College of Culinary Arts,23,For-Profit

目前,有许多重复的“学校”栏目(卡林顿,德弗里等),我想把它们压缩下来。更具体地说,我希望每一所独特的学校都有1行,其中也包括该学校所有实例的数字,但保留拥有该学校的公司的名称(第一栏)和学校的类型(最后一栏)。

最终产品如下所示:

代码语言:javascript
复制
Company,School,Number,Type
Adtelem Global Education Inc.,Carrington,18,For-Profit,
Adtelem Global Education Inc., DeVry Institute of Technology,8,For-Profit
Adtelem Global Education Inc.,DeVry Institute of Learning,25,For-Profit
Career Education Corporation,Le Cordon Blue College of Culinary Arts,29,For-Profit

我使用了以下代码:

代码语言:javascript
复制
data2 = data.groupby("School").sum()

然而,当我这样做,我也失去了公司和类型附属于每一所学校。我知道解决方案是相当基本的,但我是新的潘达斯,所以任何帮助你们都可以提供将非常感谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-10-27 20:49:01

我会用groupby + agg来做这个

代码语言:javascript
复制
df.groupby('School', as_index=False)\
    .agg({'Company' : 'first', 'Type' : 'first', 'Number' : 'sum'})

                                    School                        Company  \
0                               Carrington  Adtelem Global Education Inc.   
1              DeVry Institute of Learning  Adtelem Global Education Inc.   
2            DeVry Institute of Technology  Adtelem Global Education Inc.   
3  Le Cordon Blue College of Culinary Arts   Career Education Corporation   

   Number        Type  
0      18  For-Profit  
1      25  For-Profit  
2       8  For-Profit  
3      29  For-Profit 

我认为最好显式地聚合所有列。

票数 1
EN

Stack Overflow用户

发布于 2017-10-27 20:42:15

您可以提供要按

代码语言:javascript
复制
data2 = data.groupby(["School", "Company", "Type"]).sum()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46982965

复制
相关文章

相似问题

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