当前位置: 首页 > 知识库问答 >
问题:

在数据帧上按操作分组

甄志
2023-03-14

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

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具有最大计数。

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

共有1个答案

卫兴邦
2023-03-14

类似于df。groupby('UsrId')。约布诺斯。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

更新:要获得有序的结果,您可以使用。订单方法:

In [10]: grouped.JobNos.sum().order(ascending=False)
Out[10]: 
UsrId
2        124
1         85
3         79
Name: JobNos
 类似资料:
  • 环境:Scala、spark、结构化流媒体、Kafka 我有一个来自Kafka流的DF,具有以下模式 DF: 我希望使用spark并行处理每一行,并使用 我需要从值列中提取值到它自己的数据框中进行处理。我有困难与Dataframe通用行对象... 是否有办法将每个执行器中的单行转换为自己的Dataframe(使用固定模式?)在固定的地点写字?有没有更好的方法来解决我的问题? 编辑澄清: DF im

  • 我有列。 如何根据值将其拆分为2? 第一个将包含

  • 问题内容: 我有一个像下面这样的熊猫数据框。 我根据基于UsrId的数据框进行分组。分组的数据框在概念上将如下所示。 现在,我正在寻找一个内置API,该API将为我提供具有最大作业数的UsrId。对于上面的示例,UsrId-2具有最大计数。 更新: 我想要最大作业数的’n’UserIds,而不是最大作业数的UsrID。对于上面的示例,如果n = 2,则输出为[2,1]。能做到吗? 问题答案: 喜欢

  • 我有一个熊猫数据框,格式如下: df: 现在我想将其分为两列,如下所示: 输出: 我想得到每一行的计数,如下所示。预期产出: 如何获得我的预期输出?我想找出每个“col2”值的最大计数?

  • 有一个spark_df有许多重复如下: 现在我想将这个spark_df转换如下: 我在熊猫身上知道这一点。但是我正在努力学习火花,这样我就可以把它实施到大数据中。如果有人能帮忙,那就太好了。

  • 我有一个数据框在熊猫如下,这是存储团队赢得的名称和体育场的名称,它赢了如下 现在,我已经在上面的数据框上与group by进行了一些计算,以找到每支球队的数量以及在体育场赢得的比赛,如下所示: 现在,我想将这些计数值添加回我的数据帧。 我面临多个分组列的问题。 任何帮助。