gpt4 book ai didi

python pandas groupby排序排名/前n

转载 作者:太空宇宙 更新时间:2023-11-03 13:28:45 25 4
gpt4 key购买 nike

我有一个按州分组并汇总到总收入的数据框,其中忽略了部门和名称。我现在想打破基础数据集,以按特定顺序显示州、部门、名称和按收入排名前 2 位(我已经从以前的数据框中创建了一个索引,该索引按特定顺序列出了州)。使用下面的示例,我想使用我的排序索引(肯塔基州、加利福尼亚州、纽约州),该索引仅列出每个州的前两个结果(按照先前按收入排列的顺序):数据集:

State       Sector   Name   Revenue
California 1 Tom 10
California 2 Harry 20
California 3 Roger 30
California 2 Jim 40
Kentucky 2 Bob 15
Kentucky 1 Roger 25
Kentucky 3 Jill 45
New York 1 Sally 50
New York 3 Harry 15

最终目标数据框:

State       Sector   Name   Revenue
Kentucky 3 Jill 45
Kentucky 1 Roger 25
California 2 Jim 40
California 3 Roger 30
New York 1 Sally 50
New York 3 Harry 15

最佳答案

您可以将 groupbyapply 结合使用:

df.groupby('State').apply(lambda grp: grp.nlargest(2, 'Revenue'))

输出:

                     Sector Name    Revenue
State State
California California 2 Jim 40
California 3 Roger 30
Kentucky Kentucky 3 Jill 45
Kentucky 1 Roger 25
New York New York 1 Sally 50
New York 3 Harry 15

然后您可以删除 MultiIndex 的第一级以获得您想要的结果:

df.index = df.index.droplevel()

输出:

         Sector Name    Revenue
State
California 2 Jim 40
California 3 Roger 30
Kentucky 3 Jill 45
Kentucky 1 Roger 25
New York 1 Sally 50
New York 3 Harry 15

关于python pandas groupby排序排名/前n,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50893124/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com