pandas如何計算移動平均值
pandas計算移動平均值
本人遇到遇到一個任務(wù),計算同月份合約當(dāng)天各合約總持倉量的移動平均值。
立刻寫下了這個函數(shù):
group = df.groupby(['合約系列','date']) f = pd.DataFrame(group['持倉量'].sum().rolling(20).mean())
上交后,提出要求,不行,這個數(shù)據(jù)不行,存在一些數(shù)據(jù),因為不足20天,導(dǎo)致結(jié)果為NAN。
一開始沒想到思路,然后就問問群里的大佬,大佬給的第一個建議,寫個功能函數(shù)。但是因為數(shù)據(jù)比較復(fù)雜,非連續(xù)數(shù)據(jù),光是分類就很難,就繼續(xù)詢問。
直到一位大佬給了個答案:
group = df.groupby(['合約系列','date']) f = pd.DataFrame(group['持倉量'].sum().rolling(20,min_periods = 1).mean())
min_periods:#表示窗口最少包含的觀測值為1
意味著數(shù)據(jù)不滿20天的,自動有一天算一天,計算均值。如第19天數(shù)據(jù),此時顯示的結(jié)果就是前面19天的均值。
pandas求滑動平均值
df.rolling(3, center=True).mean()
如果求最小值、最大值、求和等,可以改變最后面的函數(shù),比如
df.rolling(3, center=True).min() df.rolling(3, center=True).max() df.rolling(3, center=True).sum()
其他參數(shù):
DataFrame.rolling(window, min_periods=None, center=False, win_type=None, on=None, axis=0, closed=None)
window
:選幾個數(shù)求滑動平均值center
:true-以當(dāng)前數(shù)為中心win_type
:如果沒有特殊指定,所有數(shù)的權(quán)重是一樣的
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
python GUI庫圖形界面開發(fā)之PyQt5窗口類QMainWindow詳細(xì)使用方法
這篇文章主要介紹了python GUI庫圖形界面開發(fā)之PyQt5窗口類QMainWindow詳細(xì)使用方法,需要的朋友可以參考下2020-02-02Python實現(xiàn)定時自動關(guān)閉的tkinter窗口方法
今天小編就為大家分享一篇Python實現(xiàn)定時自動關(guān)閉的tkinter窗口方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-02-02tensorflow 模型權(quán)重導(dǎo)出實例
今天小編就為大家分享一篇tensorflow 模型權(quán)重導(dǎo)出實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-01-01python 利用jieba.analyse進(jìn)行 關(guān)鍵詞提取
這篇文章主要介紹了python 利用jieba.analyse進(jìn)行關(guān)鍵詞提取的方法,幫助大家更好的利用python,感興趣的朋友可以了解下2020-12-12Python檢查判斷一個數(shù)是不是另一個數(shù)的整數(shù)次冪實例深究
在數(shù)學(xué)和計算中,確定一個數(shù)是否為另一個數(shù)的整數(shù)次冪是一個常見而重要的問題,例如,我們可能需要判斷一個數(shù)是否是某個數(shù)的平方、立方或其他冪次,本文將探討在Python中如何實現(xiàn)這一功能,通過數(shù)學(xué)方法和算法檢查一個數(shù)是否是另一個數(shù)的整數(shù)次冪2023-12-12