DataFrame Pandas:创建一个新列,其中包含一系列中每个可能的 3 组的平均值

时间:2021-05-24 01:14:29

标签: python pandas

我试图找到最优雅的解决方案来计算一个系列中每个连续可能的三个元素组的平均值/平均值。我有一个这样的数据框

Index     Values
0         25
1         12
2         21
3         2
4         6
5         1
6         2

从最后一个元素开始..我想创建一个新列,其中我的平均值为 [2,1,6] [1, 6, 2], [6,2,21] ... 直到索引 0.

所以新列应该是这样的

AVG
NaN
NaN
19.333
11.666
9.666
3.0
3.0

我的想法是制作一个循环并拖尾 (3) 数据帧并为每次迭代删除数据帧的最后一个元素,但可能有更优雅的方法?

1 个答案:

答案 0 :(得分:2)

试试 rolling

df['new'] = df.Values.rolling(3).mean()
0          NaN
1          NaN
2    19.333333
3    11.666667
4     9.666667
5     3.000000
6     3.000000
Name: Values, dtype: float64