Pandas:窗口计算
1、窗口计算
Pandas 窗口函数,为了处理数字数据,Pandas 提供几种窗口函数,如移动窗口函数(rolling()),扩展窗口函数(expanding()),指数加权滑动(ewm()),同时可在基基础上调用适合的统计函数,如求和、中位数、均值、协方差、方差、相关性等。
-
rolling(10) 与 groupby 很像,但并没有进行分组,而是创建了一个按移动 10(天)位的滑动窗口对象。我们再对每个对象进行统计操作。
-
expanding,「扩展」从数据(大多情况下是时间)的起始处开始窗口,增加窗口直到指定的大小。
指数加权函数:
指数加权函数(Exponential weighted moving),在上述两个统计方法中分组中的所有数值的权重都是一样的,指数加权就是我们对分组中的数据给予不同的权重用于后边的计算中。如指数移动平均(Exponential Moving Average)也叫权重移动平均(Weighted Moving Average),是以指数式递减加权的移动平均,各数值的加权影响力随时间呈指数式递减,时间越靠近当前时刻的数据加权影响力越大。
梯度下降法,就是计算了梯度的指数加权平均数,并以此来更新权重,它的运行速度几乎总是快于标准的梯度下降算法。
2、窗口操作
.rolling()函数又叫移动窗口函数,此函数可以应用于一系列数据,指定参数window=n,并在其上调用适合的统计函数。
2.1窗口计算
2.2基本语法
在.rolling() 创建对象时,它支持以下参数:
window :可选参数,表示时间窗的大小,注意有两种形式(int 或 offset)。如果使用 int,则数值表示计算统计量的观测值的数量即向前几个数据,如果是offset类型,表示时间窗的大小。
min_periods :每个窗口最少包含的观测值数量,小于这个值的窗口结果为NaN,值可以是int,默认None,offset情况下,默认为1。
center 把窗口的标签设置为居中。布尔型,默认False,居右
win_type :窗口的类型,截取窗的各种函数,字符串类型,默认为None。
on :可选参数,对于dataframe而言,指定要计算滚动窗口的列,值为列名。
axis int、字符串,默认为0,即对列进行计算
closed :定义区间的开闭,支持int类型的window。对于offset类型默认是左开右闭,默认为right,可以根据情况指定为left、both等。
method :对单个列或行(“单个”)或整个对象(“表”)执行滚动操作。此参数仅在方法调用中指定 engine='numba' 时实现。 {‘single’, ‘table’}, 默认 ‘single’, 1.3.0+