如何对pandas中的上一行和下一行值求和

时间:2017-03-21 08:24:23

标签: python python-3.x pandas

尝试几个小时后,我仍然无法执行以下任务。 我想总结我的中心点上一行和下一行值,如下图所示

sum previous and next value to middle points

你能告诉我一个如何做到这一点的例子吗?

提前感谢您的时间!

2 个答案:

答案 0 :(得分:4)

您还可以center=True提供DF.rolling.sum()默认情况下,标签设置在窗口的右边缘),然后从中获取每个第三个切片。此外,您可以将最小观察数设置为min_periods,使其等于1,基本上说,在遇到至少min_periods个非空值之前,不会设置任何输出值。

df.A.rolling(window=3, min_periods=1, center=True).sum().iloc[::3].astype(int)

1      30
4     120
7     210
10    190
Name: A, dtype: int32

答案 1 :(得分:3)

这将完成它

df = pd.DataFrame(dict(A=np.arange(10, 101, 10)), np.arange(1, 11))

pd.Series(np.convolve(df.A.values, [1, 1, 1])[1::3], df.index[0::3])

1      30
4     120
7     210
10    190
dtype: int64

​