Python 在数据帧上按操作分组

Python 在数据帧上按操作分组,python,pandas,Python,Pandas,我有一个熊猫数据框,如下所示 UsrId JobNos 1 4 1 56 2 23 2 55 2 41 2 5 3 78 1 25 3 1 我根据UsrId按数据帧分组。分组数据框在概念上如下所示 UsrId JobNos 1 [4,56,25] 2 [23,55,41,5] 3 [78,1] 现在,我正在寻找一个内置API,它

我有一个熊猫数据框,如下所示

UsrId   JobNos
 1       4
 1       56
 2       23 
 2       55
 2       41
 2       5
 3       78
 1       25
 3       1
我根据
UsrId
按数据帧分组。分组数据框在概念上如下所示

UsrId   JobNos
  1    [4,56,25]
  2    [23,55,41,5]
  3    [78,1]
现在,我正在寻找一个内置API,它将为我提供具有最大作业计数的
UsrId
。对于上面的示例,
UsrId
-2具有最大计数

更新:
我希望
n
userid
具有最大作业计数,而不是具有最大作业计数的
UsrID
。对于上述示例,如果
n=2
,则输出为
[2,1]
。这可以做到吗?

类似于
df.groupby('UsrId').JobNos.sum().idxmax()的东西应该做到:

In [1]: import pandas as pd

In [2]: from StringIO import StringIO

In [3]: data = """UsrId   JobNos
   ...:  1       4
   ...:  1       56
   ...:  2       23 
   ...:  2       55
   ...:  2       41
   ...:  2       5
   ...:  3       78
   ...:  1       25
   ...:  3       1"""

In [4]: df = pd.read_csv(StringIO(data), sep='\s+')

In [5]: grouped = df.groupby('UsrId')

In [6]: grouped.JobNos.sum()
Out[6]: 
UsrId
1         85
2        124
3         79
Name: JobNos

In [7]: grouped.JobNos.sum().idxmax()
Out[7]: 2
如果希望根据每组中的项目数获得结果:

In [8]: grouped.size()
Out[8]: 
UsrId
1        3
2        4
3        2

In [9]: grouped.size().idxmax()
Out[9]: 2
更新:要获得有序结果,您可以使用
.order
方法:

In [10]: grouped.JobNos.sum().order(ascending=False)
Out[10]: 
UsrId
2        124
1         85
3         79
Name: JobNos

谢谢你的解决方案。它起作用了。我已经更新了我的问题。你能看一下并为更新后的问题提出解决方案吗。