gaussian窗口函数_Pandas 移动窗口函数 rolling

说明

Pandas 中文教程修订中,欢迎加微信 sinbam 提供建议、纠错、催更。查看更新日志

.rolling()函数又叫移动窗口函数,此函数可以应用于一系列数据,指定参数window=n,并在其上调用适合的统计函数。

创建 Rolling 对象

创建 Rolling 对象后,可以对对象进行计算操作。

s = pd.Series(np.random.randn(1000),

index=pd.date_range('1/1/2000', periods=1000))

s = s.cumsum()

r = s.rolling(window=60)

r

# Rolling [window=60,center=False,axis=0]

我们可以看看 Rolling 支持的统计方法:

r. # noqa: E225, E999

r.agg r.apply r.count r.exclusions r.max r.median r.name r.skew r.sum

r.aggregate r.corr r.cov r.kurt r.mean r.min r.quantile r.std r.var

参数

在.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等。

窗口的类型 win_type

将win_type 传递给.rolling 会生成一个通用的滚动窗口计算,该计算将根据 win_type进行加权。

win_type 参数支持以下类型:

boxcar

triang

blackman

hamming

bartlett

parzen

bohman

blackmanharris

nuttall

barthann

kaiser (needs beta)

gaussian (needs std)

general_gaussian (needs power, width)

slepian (needs width)

exponential (needs tau).

如:

ser.rolling(window=5, win_type='triang').mean()

ser.rolling(window=5, win_type='gaussian').mean(std=0.1)

# 以下相同

ser.rolling(window=5, win_type='boxcar').mean()

ser.rolling(window=5).mean()

统计

我们可以使用上边的统计方法对窗口进行计算:

r.mean()

s.plot(style='k--') # 绘图看一下变化,原数据

r.mean().plot(style='k') # 绘图看一下变化,计算后的

DataFrame 的应用

它们也可以应用于DataFrame对象。 这实际上只是将移动窗口运算符应用于DataFrame 的所有列的语法糖:

df = pd.DataFrame(np.random.randn(1000, 4),

index=pd.date_range('1/1/2000', periods=1000),

columns=['A', 'B', 'C', 'D'])

df = df.cumsum()

# 操作并绘图

df.rolling(window=60).sum().plot(subplots=True)

统计方法

提供许多常见的统计功能:

Method

Description

count()

Number of non-null observations

sum()

Sum of values

mean()

Mean of values

median()

Arithmetic median of values

min()

Minimum

max()

Maximum

std()

Bessel-corrected sample standard deviation

var()

Unbiased variance

skew()

Sample skewness (3rd moment)

kurt()

Sample kurtosis (4th moment)

quantile()

Sample quantile (value at %)

apply()

Generic apply

cov()

Unbiased covariance (binary)

corr()

Correlation (binary)

使用函数 apply()

apply() 函数接受一个额外的 func 参数,并执行通用滚动计算。 func 参数应该是一个从 ndarray 输入生成单个值的函数。 假设我们要滚动计算平均绝对偏差:

def mad(x):

return np.fabs(x - x.mean()).mean()

s.rolling(window=60).apply(mad, raw=True).plot(style='k')

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值