簡體   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