繁体   English   中英

熊猫如何获取列的当前值和下一个连续2个值的总和并添加到新列

[英]Pandas how to get sum of current value and next consecutive 2 values of a column and add to a new column

我有一个带有数字的数据框列。 我需要在数据框中添加一个新列,其中新列的值是当前值与该列的下两个值之和。 新列的最后两行应为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]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM