1. 程式人生 > >python | pandas | 移動視窗函式rolling

python | pandas | 移動視窗函式rolling

超級好用的移動視窗函式

最近經常使用移動視窗函式,覺得很方便,功能強大,程式碼簡單,故將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, ...])