[問題] 請問 dataframe的rolling

看板Python作者 (丁丁是念來過倒)時間1年前 (2022/05/29 22:59), 1年前編輯推噓4(402)
留言6則, 3人參與, 1年前最新討論串1/1
我爬文爬到很多用mean std之類的統計運算 例如這樣 .rolling(3).mean() 可是如果我想要 每3筆資料 的頭尾做運算該怎麼做呢 我實在找不到 請各位大神幫我 感激 -- Sent from nPTT on my iPhone -- -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.76.143.90 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1653836397.A.A1A.html

05/29 23:04, 1年前 , 1F
df.groupby(df.index // 3).mean() 這樣是你要的嗎?
05/29 23:04, 1F
感謝woogee大的回覆 可是我想要的是這樣 Value. Value1 0. 6. Nan 1. 5. Nan 2. 4. 2 3. 3. 2 4. 2. 2 5. 3. 0 就是原本的 df rolling(3) 每三個的頭尾想減 (6-4) (5-3).. 形成一個新的一個column這樣 感謝 ※ 編輯: strekm (42.79.205.170 臺灣), 05/29/2022 23:32:57

05/29 23:33, 1年前 , 2F
我推薦試試看polars 效能比較好 又比較多支援函數
05/29 23:33, 2F

05/29 23:33, 1年前 , 3F

05/30 13:32, 1年前 , 4F
根本不用rolling 你想要的應該是shift(2)後相減
05/30 13:32, 4F

05/30 13:33, 1年前 , 5F
df["Val1"] = df["Val"].shift(2).sub(df["Val"])
05/30 13:33, 5F

05/31 11:33, 1年前 , 6F
哦哦,這樣的話,樓上l大的shift應該是正解
05/31 11:33, 6F
文章代碼(AID): #1YaufjeQ (Python)