.rolling()函数
rolling函数固定窗口大小,滚动计算,每次滚动1格
先随机创建一个数据集,有4列,10行
df = pd.DataFrame(np.random.randn(10, 4),index = pd.date_range('1/1/2020', periods=10),columns = ['A', 'B', 'C', 'D'])
#计算3天的平均值,第三个元素的值将是n,n-1和n-2元素的平均值。
df.rolling(window=3).mean()
方法签名
DataFrame.rolling(window, min_periods=None, center=False, win_type=None,
on=None, axis=0, closed=None)
window:表示时间窗的大小,有两种形式:1)使用数值int,则表示观测值的数量,即向前几个数据;2)也可以使用offset类型,这种类型较复杂,使用场景较少,此处暂不做介绍;
min_periods:每个窗口最少包含的观测值数量,小于这个值的窗口结果为NA。值可以是int,默认None。offset情况下,默认为1;
center: 把窗口的标签设置为居中,布尔型,默认False,居右
win_type: 窗口的类型。截取窗的各种函数。字符串类型,默认为None;
on: 可选参数。对于dataframe而言,指定要计算滚动窗口的列。值为列名。
axis: 默认为0,即对列进行计算
closed:定义区间的开闭,支持int类型的window。对于offset类型默认是左开右闭的即默认为right。可以根据情况指定为left、both等。
常用函数:
rolling()函数除了mean(),还支持很多函数,比如:
count() 非空观测值数量
sum() 值的总和
median() 值的算术中值
min() 最小值
max() 最大
std() 贝塞尔修正样本标准差
var() 无偏方差
skew() 样品偏斜度(三阶矩)
kurt() 样品峰度(四阶矩)
quantile() 样本分位数(百分位上的值)
cov() 无偏协方差(二元)
corr() 相关(二进制)
借助 agg ()函数可以快速实现多个聚类函数,并输出结果,同时还可以进行重命名;
expanding
参数与rolling函数相同,expanding()函数只设置最小的观测值数量,不固定窗口大小,实现累计计算,即不断扩展
df.expanding(min_periods=3).mean()