[英]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.