首页 > 解决方案 > 使用pandas,如何批量计算csv数据的平均值?

问题描述

为这个问题添加更多内容。

我们想从批量读取的 csv 文件中计算数据帧的平均值。但有时,我们可能会在某些批次中错过一两行。

输入:每组总是以 A 开头。第三批中缺少 C。

A,1
B,2
B,1
C,2
A,1
B,3
B,1
A,1
B,2
B,1
C,3  

输出:打印 col2 的平均值并计算

A, average(1,1,1), 3
B, average(2,3,2), 3
B, average(1,1,1), 3
C, average(1,,3), 2 

标签: pythondataframepandas-groupby

解决方案


假设您的数据在df数据框中

df['gp'] = df.groupby([df[0].eq('A').cumsum(), 0]).cumcount()
final = df.groupby([0, 'gp'])[1].agg(['mean','count'])

#OUTPUT

          mean  count
0 gp
A 0   1.000000      3
B 0   2.333333      3
  1   1.000000      3
C 0   2.500000      2

推荐阅读