Python 了解如何获取列的当前值和下一个连续2个值之和,并将其添加到新列

Python 了解如何获取列的当前值和下一个连续2个值之和,并将其添加到新列,python,pandas,Python,Pandas,我有一个带有数字的数据框列。我需要在数据框中添加一个新列,其中新列的值是当前值和该列的下两个值的总和。新列的最后两行应为NAN。 如果我的专栏是 p=[1,2,3,4,5,6,7,8] df=pd.DataFrame({'num':p}) #dummy data 新列的第一个值应为1+2+3,第二个值应为2+3+4,依此类推。 现在,我正在将列转换为列表,然后进行计算 p=df['num'].tolist() ls=[] for (i,v) in enumerate(p): try:

我有一个带有数字的数据框列。我需要在数据框中添加一个新列,其中新列的值是当前值和该列的下两个值的总和。新列的最后两行应为NAN。 如果我的专栏是

p=[1,2,3,4,5,6,7,8]
df=pd.DataFrame({'num':p})
#dummy data
新列的第一个值应为1+2+3,第二个值应为2+3+4,依此类推。 现在,我正在将列转换为列表,然后进行计算

p=df['num'].tolist()
ls=[]
for (i,v) in enumerate(p):
    try:
        val=v+p[i+1]+p[i+2]
        ls.append(val)
    except:
        ls.append(np.NAN)
最后将列表添加到数据帧中

df['rolled']=ls
我们有没有办法靠熊猫自己做到这一点?我尝试了滚动平均值,但没有按照我想要的方式工作,滚动平均值中是否有特殊的窗口可以获得所需格式的输出


提前感谢

太棒了!!谢谢
df = df[::-1]
df['num3'] = df.rolling(3).sum()
df[::-1]