当前位置: 首页 > 面试题库 >

Python Pandas:按分组分组,平均?

马德宇
2023-03-14
问题内容

我有一个这样的数据框:

cluster  org      time
   1      a       8
   1      a       6
   2      h       34
   1      c       23
   2      d       74
   3      w       6 

我想计算每个集群每个组织的平均时间。

预期结果:

cluster mean(time)
1       15 ((8+6)/2+23)/2
2       54   (74+34)/2
3       6

我不知道如何在熊猫中做到这一点,有人可以帮忙吗?


问题答案:

如果你想先对['cluster', 'org']组合取平均值,然后再对cluster组取平均值

In [59]: (df.groupby(['cluster', 'org'], as_index=False).mean()
            .groupby('cluster')['time'].mean())
Out[59]:
cluster
1          15
2          54
3           6
Name: time, dtype: int64

如果你cluster不仅仅希望价值观,那么你可以

In [58]: df.groupby(['cluster']).mean()
Out[58]:
              time
cluster
1        12.333333
2        54.000000
3         6.000000

你可以groupby上['cluster', 'org']再取mean()

In [57]: df.groupby(['cluster', 'org']).mean()
Out[57]:
               time
cluster org
1       a    438886
        c        23
2       d      9874
        h        34
3       w         6


 类似资料:
  • 问题内容: 我有以下几点: http://sqlfiddle.com/#!6/226ae/1 我现在尝试为一年中的每个星期添加一行,并相应地过滤联系人。CONTACTS有一个datetime列。新表将如下所示: 我认为需要使用DATEADD,但是在如何开始更改查询方面我迷茫了。 我确实知道MySQL具有GROUP BY WEEK命令,但我认为SQL没有等效的命令。做到这一点的最佳方法是什么? 问题

  • 问题内容: 我试图通过取元素的平均值将numpy数组分组为较小的大小。例如,将100x100阵列中的平均5x5子阵列的foreach平均值创建20x20大小的阵列。由于需要处理大量数据,这是一种有效的方法吗? 问题答案: 我已经尝试过使用较小的阵列,因此请与您的阵列进行测试: 6x6-> 3x3的示例:

  • 问题内容: 我有一个小问题。我有这样格式的PostgreSQL表 我想按5分钟的时间对它们进行分组,并将该组的平均值作为一个单一值,因此将有20%的记录,每条记录平均包含〜5个数字,而时间设置为中的第一个时间值群组。我不知道如何在PgSQL中执行此操作。因此结果将是: 问题答案: 解释 子查询每5分钟从表中的最小值“到最大值”产生一行记录。 以5分钟为间隔将LEFT JOIN返回表切片数据。仔细

  • 我试着取一个数字列表,把它们分成>=n组,这样每组的和近似相等(但不一定完全相等),并且“离群值”可以在它们自己的一组中。 因此,对于一个由3个组组成的目标和一个类似于以下内容的输入: 输出可能是: 我想我已经把方法学弄清楚了,作为伪代码,它看起来像这样: 我搞不懂的是,如何将该逻辑转换为-之所以要这样做,是因为数字列表实际上来自一系列对象的属性,我希望以这种方式对这些对象进行分组。

  • 有没有非终端版本的或其他一些简洁的方式来流式传输生成的Map条目/值? 我发现自己想在分组后流过值但我能想到的最好的方法并不漂亮:

  • 问题内容: 作为输入,我有一个带时间的CSV文件,每次都有一串数字。 我想输出按小时平均和总和分组的每小时表格: 到目前为止,我一直在看用字典来完成它,其中小时是一个关键,值是一个计数和总和的列表,然后将总和除以计数就可以得到平均值。我敢肯定,必须有一种更清洁的方法来做到这一点。也许有些图书馆可以使用它。有什么建议? 问题答案: 一个熊猫的解决方案: 印刷品: 另存为csv文件: 这是以下内容: