传播平均值时向前传播值

问题描述 投票:0回答:1

我试图通过以下方式找出如何在Python Pandas中转发传播值:基本上,假设我有一个熊猫系列(每个元素都是一个时间t):

[5, 2, 3, 3, 4, 9, 2, 3, 1, 9, 2, 7, 5, 7, 9, 2, 3, 1]

我希望每个元素持续4个时间段,这意味着:

[5, 5, 5, 5, ...]

但是,正如您所看到的,我的5将会覆盖2、3、3等...就我而言,我想保留它们的全部,但取平均值。

这样,它将是:

[5, 3.5, 3.33, 3.25, ...]

我尝试过:

myList = [5, 2, 3, 3, 4, 9, 2, 3, 1, 9, 2, 7, 5, 7, 9, 2, 3, 1]
N=4
np.convolve(myList, np.ones((N,))/N, mode='valid')

但是我得到:

[3.25,
 3.0,
 4.75,
 4.5,
 4.5,
 3.75,
 3.75,
 3.75,
 4.75,
 5.75,
 5.25,
 7.0,
 5.75,
 5.25,
 3.75]

与我所期望的不完全相同。...

您知道该怎么做吗?非常感谢

python pandas math
1个回答
0
投票

这是您的追求吗?

s = pd.Series([5, 2, 3, 3, 4, 9, 2, 3, 1, 9, 2, 7, 5, 7, 9, 2, 3, 1])
s.rolling(4, min_periods=1).mean()

0     5.000000
1     3.500000
2     3.333333
3     3.250000
4     3.000000
5     4.750000
6     4.500000
7     4.500000
8     3.750000
9     3.750000
10    3.750000
11    4.750000
12    5.750000
13    5.250000
14    7.000000
15    5.750000
16    5.250000
17    3.750000
dtype: float64
© www.soinside.com 2019 - 2024. All rights reserved.