我需要计算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
答案 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是您希望查找平均值的列