[英]How to add a new column that includes sum consecutive values of other column?
[英]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.