我正在尝试建立一个表,该表具有按子组划分的组,每个子组具有计数和平均值。例如,我要转换以下数据框:

python - Python:汇总和汇总DataFrame中的组和子组-LMLPHP

对于一个看起来像这样的表,其中间隔是一个更大的组,而一列则成为该组内的子组,每个单元格中都有对应的子组的计数和平均值:

python - Python:汇总和汇总DataFrame中的组和子组-LMLPHP

我已经尝试过,但没有成功:

python - Python:汇总和汇总DataFrame中的组和子组-LMLPHP

最佳答案

DataFrame.meltGroupBy.agg和元组一起使用,以具有新列名称的聚合函数:

df1 = (df.melt('interval', var_name='source')
         .groupby(['interval','source'])['value']
         .agg([('cnt','count'), ('average','mean')])
         .reset_index())
print (df1.head())
  interval source  cnt  average
0        0      a    1      5.0
1        0      b    1      0.0
2        0      c    1      0.0
3        0      d    1      0.0
4        0      f    1      0.0

关于python - Python:汇总和汇总DataFrame中的组和子组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55663359/

10-12 07:11