python | pandas | 移動視窗函式rolling
阿新 • • 發佈:2019-01-04
超級好用的移動視窗函式
最近經常使用移動視窗函式,覺得很方便,功能強大,程式碼簡單,故將pandas中的移動視窗函式都做介紹。它都是以rolling打頭的函式,後接具體的函式,來顯示該移動視窗函式的功能。
rolling_count 計算各個視窗中非NA觀測值的數量
函式
pandas.rolling_count(arg, window, freq=None, center=False, how=None)
arg : DataFrame 或 numpy的ndarray 陣列格式
window : 指移動視窗的大小,為整數
freq :
center : 布林型,預設為False, 指取中間的
how : 字串,預設為“mean”,為down- 或re-sampling
import pandas as pd
import numpy as np
df = pd.DataFrame({'key1':['a','a','b','b','a'],
'key2':['one','two','one','two','one'],
'data1':np.nan,
'data2':np.random.randn(5)})
df
pd.rolling_count(df[['data1','data2']],window = 3)
rolling_sum 移動視窗的和
pandas.rolling_sum(arg, window, min_periods=None, freq=None, center=False, how=None, **kwargs)
arg : 為Series或DataFrame
window : 視窗的大小
min_periods : 最小的觀察數值個數
freq :
center : 布林型,預設為False, 指取中間的
how : 取值的方式,預設為None
pd.rolling_sum(df,window = 2,min_periods = 1)
rolling_mean 移動視窗的均值
pandas.rolling_mean(arg, window, min_periods=None , freq=None, center=False, how=None, **kwargs)
rolling_median 移動視窗的中位數
pandas.rolling_median(arg, window, min_periods=None, freq=None, center=False, how='median', **kwargs)
rolling_var 移動視窗的方差
pandas.rolling_var(arg, window, min_periods=None, freq=None, center=False, how=None, **kwargs)
rolling_std 移動視窗的標準差
pandas.rolling_std(arg, window, min_periods=None, freq=None, center=False, how=None, **kwargs)
rolling_min 移動視窗的最小值
pandas.rolling_min(arg, window, min_periods=None, freq=None, center=False, how='min', **kwargs)
rolling_max 移動視窗的最大值
pandas.rolling_min(arg, window, min_periods=None, freq=None, center=False, how='min', **kwargs)
rolling_corr 移動視窗的相關係數
pandas.rolling_corr(arg1, arg2=None, window=None, min_periods=None, freq=None, center=False, pairwise=None, how=None)
rolling_corr_pairwise 配對資料的相關係數
等價於: rolling_corr(…, pairwise=True)
pandas.rolling_corr_pairwise(df1, df2=None, window=None, min_periods=None, freq=None, center=False)
rolling_cov 移動視窗的協方差
pandas.rolling_cov(arg1, arg2=None, window=None, min_periods=None, freq=None, center=False, pairwise=None, how=None, ddof=1)
rolling_skew 移動視窗的偏度(三階矩)
pandas.rolling_skew(arg, window, min_periods=None, freq=None, center=False, how=None, **kwargs)
rolling_kurt 移動視窗的峰度(四階矩)
pandas.rolling_kurt(arg, window, min_periods=None, freq=None, center=False, how=None, **kwargs)
rolling_apply 對移動視窗應用普通陣列函式
pandas.rolling_apply(arg, window, func, min_periods=None, freq=None, center=False, args=(), kwargs={})
rolling_quantile 移動視窗分位數函式
pandas.rolling_quantile(arg, window, quantile, min_periods=None, freq=None, center=False)
rolling_window 移動視窗
pandas.rolling_window(arg, window=None, win_type=None, min_periods=None, freq=None, center=False, mean=True, axis=0, how=None, **kwargs)
ewma 指數加權移動
ewma(arg[, com, span, halflife, ...])
ewmstd 指數加權移動標準差
ewmstd(arg[, com, span, halflife, ...])
ewmvar 指數加權移動方差
ewmvar(arg[, com, span, halflife, ...])
ewmcorr 指數加權移動相關係數
ewmcorr(arg1[, arg2, com, span, halflife, ...])
ewmcov 指數加權移動協方差
ewmcov(arg1[, arg2, com, span, halflife, ...])