首页 > 解决方案 > 计算 Pandas groupby 中各组之间的按价值均值和按价值求和

问题描述

假设我有一个这样的数据框:

cluster A     B     C
  a     1     2     3
  a     10    20    30
  a     100   200   300
  b     4     5     6
  b     40    50    60
  b     400   500   600
  c     7     8     9
  c     70    80    90
  c     700   800   900

我想首先按集群对数据框进行分组,然后计算 A 列和 B 列的值均值,并计算组中 C 列的值总和。

预期结果:

cluster A     B     C
  d     4     5     18
  d     40    50    180
  d     400   500   1800

提前致谢。

标签: pythonpandaspandas-groupby

解决方案


您可以按集群的 cumcount 分组,然后执行聚合函数:

s = df.groupby('cluster').cumcount()
df = df.groupby(s).agg({'A':'mean', 'B':'mean', 'C':'sum'})
df.insert(0,'cluster','d')
df
Out[1]: 
  cluster    A    B     C
0       d    4    5    18
1       d   40   50   180
2       d  400  500  1800

推荐阅读