欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

pandas如何計算移動平均值

 更新時間:2024年09月10日 16:10:41   作者:神出鬼沒,指的就是我!  
在處理金融數(shù)據(jù)分析時,常需計算移動平均值。遇到數(shù)據(jù)不足導(dǎo)致結(jié)果為NAN問題,可使用pandas中rolling函數(shù)的min_periods參數(shù)。設(shè)置min_periods=1即可解決,它允許窗口中的非空觀測值少于窗口大小時也能計算均值,確保數(shù)據(jù)不足時也能得出結(jié)果

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)文章

最新評論