构造序列
import matplotlib.pylab
import numpy as np
import pandas as pd
df = pd.DataFrame(np.random.randn(600, 3), index = pd.date_range('7/1/2016', freq = 'D', periods = 600), columns = ['A', 'B', 'C'])
df.plot(subplots=True)
滑动平均
r = df.rolling(window = 10)
#r.agg, r.apply, r.count, r.exclusions, r.max, r.median, r.name, r.quantile, r.kurt, r.cov, r.corr, r.aggregate, r.std, r.skew, r.sum, r.var
r.mean().plot(subplots=True)
自定义窗口内函数
除了使用 rolling 自带的函数 mean, agg, apply, count, exclusions, max, median, name, quantile 之外,还可以自定义。
比如如下 lambda 函数实现了计算窗口内的平均绝对误差:
E
[
∣
x
−
E
[
x
]
∣
]
E[|x-E[x]|]
E[∣x−E[x]∣]
df.rolling(window = 10)\
.apply(lambda x: np.fabs(x - x.mean()).mean(), raw=True)\
.plot(subplots=True)
raw=True 表示 lambda 函数的输入实参为 np.ndarray,否则为 Series
下图中的所有值都大于零了