版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xxzhangx/article/details/76938053 </div>
<link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/ck_htmledit_views-cd6c485e8b.css">
<div id="content_views" class="markdown_views">
<!-- flowchart 箭头图标 勿删 -->
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
<path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path>
</svg>
<blockquote>
超级好用的移动窗口函数
最近经常使用移动窗口函数,觉得很方便,功能强大,代码简单,故将pandas中的移动窗口函数都做介绍。它都是以rolling打头的函数,后接具体的函数,来显示该移动窗口函数的功能。
rolling_count 计算各个窗口中非NA观测值的数量
函数
pandas.rolling_count(arg, window, freq=None, center=False, how=None)
- 1
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
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
pd.rolling_count(df[['data1','data2']],window = 3)
- 1
rolling_sum 移动窗口的和
pandas.rolling_sum(arg, window, min_periods=None, freq=None, center=False, how=None, **kwargs)
- 1
arg : 为Series或DataFrame
window : 窗口的大小
min_periods : 最小的观察数值个数
freq :
center : 布尔型,默认为False, 指取中间的
how : 取值的方式,默认为None
pd.rolling_sum(df,window = 2,min_periods = 1)
- 1
rolling_mean 移动窗口的均值
pandas.rolling_mean(arg, window, min_periods=None, freq=None, center=False, how=None, **kwargs)
- 1
- 2
rolling_median 移动窗口的中位数
pandas.rolling_median(arg, window, min_periods=None, freq=None, center=False, how='median', **kwargs)
- 1
- 2
rolling_var 移动窗口的方差
pandas.rolling_var(arg, window, min_periods=None, freq=None, center=False, how=None, **kwargs)
- 1
rolling_std 移动窗口的标准差
pandas.rolling_std(arg, window, min_periods=None, freq=None, center=False, how=None, **kwargs)
- 1
rolling_min 移动窗口的最小值
pandas.rolling_min(arg, window, min_periods=None, freq=None, center=False, how='min', **kwargs)
- 1
rolling_max 移动窗口的最大值
pandas.rolling_min(arg, window, min_periods=None, freq=None, center=False, how='min', **kwargs)
- 1
rolling_corr 移动窗口的相关系数
pandas.rolling_corr(arg1, arg2=None, window=None, min_periods=None, freq=None, center=False, pairwise=None, how=None)
- 1
rolling_corr_pairwise 配对数据的相关系数
等价于: rolling_corr(…, pairwise=True)
pandas.rolling_corr_pairwise(df1, df2=None, window=None, min_periods=None, freq=None, center=False)
- 1
rolling_cov 移动窗口的协方差
pandas.rolling_cov(arg1, arg2=None, window=None, min_periods=None, freq=None, center=False, pairwise=None, how=None, ddof=1)
- 1
rolling_skew 移动窗口的偏度(三阶矩)
pandas.rolling_skew(arg, window, min_periods=None, freq=None, center=False, how=None, **kwargs)
- 1
rolling_kurt 移动窗口的峰度(四阶矩)
pandas.rolling_kurt(arg, window, min_periods=None, freq=None, center=False, how=None, **kwargs)
- 1
rolling_apply 对移动窗口应用普通数组函数
pandas.rolling_apply(arg, window, func, min_periods=None, freq=None, center=False, args=(), kwargs={})
- 1
rolling_quantile 移动窗口分位数函数
pandas.rolling_quantile(arg, window, quantile, min_periods=None, freq=None, center=False)
- 1
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)
- 1
ewma 指数加权移动
ewma(arg[, com, span, halflife, ...])
- 1
ewmstd 指数加权移动标准差
ewmstd(arg[, com, span, halflife, ...])
- 1
ewmvar 指数加权移动方差
ewmvar(arg[, com, span, halflife, ...])
- 1
ewmcorr 指数加权移动相关系数
ewmcorr(arg1[, arg2, com, span, halflife, ...])
- 1
ewmcov 指数加权移动协方差
ewmcov(arg1[, arg2, com, span, halflife, ...])
- 1
<link href="https://csdnimg.cn/release/phoenix/mdeditor/markdown_views-e44c3c0e64.css" rel="stylesheet">
</div>