我试图通过以下方式找出如何在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]
与我所期望的不完全相同。...
您知道该怎么做吗?非常感谢
这是您的追求吗?
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