【问题标题】:Fetching MultiIndex from groupby pandas从 groupby 熊猫中获取 MultiIndex
【发布时间】:2019-04-28 21:14:02
【问题描述】:

根据每个组的最大客户数提取groupby 之后的第二个索引的有效方法是什么。

假设一个数据框 df 包含各个州和每个州的 10 名军官(姓名 Officer 1Officer 10)。 Current Status 列将始终具有值 Customer

    State List  Sales Officer   Current Status
0   UP          Officer 4       Customer
1   MH          Officer 5       Customer
2   AP          Officer 6       Customer
3   AN          Officer 2       Customer
4   GJ          Officer 3       Customer
.... so on

预期输出由每个州客户数量最多的销售人员组成:

State List     Sales Officer      
AN             Officer 6          403
AP             Officer 1          266
               Officer 8          266
... and so on

到目前为止,我已经执行了以下操作:

df.groupby(['State List', 'Sales Officer'])['Current Status'].count()#.reset_index()

给我以下信息:

State List  Sales Officer
AN          Officer 1        376
            Officer 10       401
            Officer 2        353
            Officer 3        373
            Officer 4        375
            Officer 5        382
            Officer 6        403
            Officer 7        400
            Officer 8        385
            Officer 9        378
AP          Officer 1        266
            Officer 10       228
            Officer 2        240
            Officer 3        248
            Officer 4        235
            Officer 5        229
            Officer 6        242
            Officer 7        238
            Officer 8        266
            Officer 9        243

现在,我被困在针对每个 State List 提取 Sales Officer 的最大客户数。任何想法!

【问题讨论】:

    标签: python pandas group-by series


    【解决方案1】:

    使用boolean indexingtransformmax 以返回Series 与原始大小相同:

    s = df.groupby(['State List', 'Sales Officer'])['Current Status'].count()
    df = s[s == s.groupby('State List').transform('max')]
    print (df)
    State List  Sales Officer
    AN          Officer 6        403
    AP          Officer 1        266
                Officer 8        266
    Name: a, dtype: int64
    

    详情

    print (s.groupby('State List').transform('max'))
    State List  Sales Officer
    AN          Officer 1        403
                Officer 10       403
                Officer 2        403
                Officer 3        403
                Officer 4        403
                Officer 5        403
                Officer 6        403
                Officer 7        403
                Officer 8        403
                Officer 9        403
    AP          Officer 1        266
                Officer 10       266
                Officer 2        266
                Officer 3        266
                Officer 4        266
                Officer 5        266
                Officer 6        266
                Officer 7        266
                Officer 8        266
                Officer 9        266
    Name: a, dtype: int64
    

    【讨论】:

    • 谢谢。但是,对于AP 州,有 2 名军官的人数最多,我还需要获取这两个名字,正如我在预期输出中提到的那样。
    猜你喜欢
    • 2013-06-06
    • 2016-09-02
    • 2019-02-24
    • 1970-01-01
    • 2021-03-01
    • 2017-01-11
    • 2021-12-06
    • 2022-07-05
    • 1970-01-01
    相关资源
    最近更新 更多