【问题标题】:Grouping by rows in pandas?在熊猫中按行分组?
【发布时间】:2020-11-21 00:29:23
【问题描述】:

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

#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]}

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

Score        Subject        Qty
60-70        Mathematics    2
             Science        1
70-80        Mathematics    1
             Science        2

到目前为止,我还无法弄清楚...有什么绝妙的想法吗?

【问题讨论】:

    标签: pandas dataframe group-by pandas-groupby


    【解决方案1】:

    试试:

    (df.groupby([pd.cut(df['Score'],bins=[60,70,80]),
                 'Subject'])
       .size()
       .to_frame('Qty')
    )
    

    输出:

                          Qty
    Score    Subject         
    (60, 70] Mathematics    2
             Science        1
    (70, 80] Mathematics    0
             Science        2
    

    【讨论】:

    • 谢谢!我会试一试 - 实际的数据集看起来有点不同,所以我会看看我能做什么。
    猜你喜欢
    • 2017-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-23
    • 2013-02-28
    • 2016-06-24
    • 2021-11-11
    相关资源
    最近更新 更多