首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在pandas中按行分组?

在pandas中按行分组?
EN

Stack Overflow用户
提问于 2020-11-21 08:29:23
回答 1查看 17关注 0票数 0

当我的源数据还没有很好地分组时,我想要一种方法来执行分组和聚合函数。例如,给定以下数据帧:

代码语言:javascript
复制
#Create a DataFrame
d = {
    'Name':['Alisa','Bobby','Cathrine','Alisa','Bobby','Cathrine',
            'Alisa','Bobby','Cathrine','Alisa','Bobby','Cathrine'],
'Exam':['Semester 1','Semester 1','Semester 1','Semester 1','Semester 1','Semester 1',
        'Semester 2','Semester 2','Semester 2','Semester 2','Semester 2','Semester 2'],

'Subject':['Mathematics','Mathematics','Mathematics','Science','Science','Science',
           'Mathematics','Mathematics','Mathematics','Science','Science','Science'],
'Score':[62,47,55,74,31,77,85,63,42,67,89,81]}

我希望能够打印一个按分数范围汇总结果的表,例如:

代码语言:javascript
复制
Score        Subject        Qty
60-70        Mathematics    2
             Science        1
70-80        Mathematics    1
             Science        2

到目前为止我还没能弄清楚这件事。有什么好主意吗?

EN

回答 1

Stack Overflow用户

发布于 2020-11-21 08:34:57

尝试:

代码语言:javascript
复制
(df.groupby([pd.cut(df['Score'],bins=[60,70,80]),
             'Subject'])
   .size()
   .to_frame('Qty')
)

输出:

代码语言:javascript
复制
                      Qty
Score    Subject         
(60, 70] Mathematics    2
         Science        1
(70, 80] Mathematics    0
         Science        2
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64938629

复制
相关文章

相似问题

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