计算每组的平均行数

时间:2019-01-25 09:40:54

标签: python python-3.x pandas data-science

我需要计算DataFrame中某一列的平均值,以便计算出每一行,这不包括在特定组中为其计算的行的先前值。假设我们有这个数据框,这是预期的输出

有什么方法可以像按索引迭代每一行,在每次迭代中按索引添加前一行,然后计算均值。我想知道是否有更有效的方法

unit    A      Expected 
T10     8      8
T10     7      7.5
T10     12     9
T11     10     10
T11     6      8
T12     17     17
T12     7      12
T12     3      9

3 个答案:

答案 0 :(得分:3)

您可以使用expanding

df2 = df.groupby('unit')['A'].expanding().mean().reset_index()
df['Expected'] = df2['A']

答案 1 :(得分:1)

DataFrameGroupBy.cumsum与计数器用GroupBy.cumcount分开:

g = df.groupby('unit')['A']
df['Expected'] = g.cumsum().div(g.cumcount() + 1)
print (df)
  unit   A  Expected
0  T10   8       8.0
1  T10   7       7.5
2  T10  12       9.0
3  T11  10      10.0
4  T11   6       8.0
5  T12  17      17.0
6  T12   7      12.0
7  T12   3       9.0

答案 2 :(得分:0)

要计算熊猫中特定列的平均值,您需要做的就是使用pandas库中的mean方法。

mean = df["frequencies"].mean()

其中df是数据帧的名称,而frequency是您希望查找平均值的列

相关问题