rolling的用法实例

在数据分析的过程中,经常用到对计算移动均值,使用rolling可以轻松实现这个功能~

rolling函数是一个用于时间序列分析的函数;

一、参数解析

首先,让我们来了解一下rolling的各个参数吧

DataFrame.rolling(window, min_periods=None, center=False, win_type=None, on=None, axis=0, closed=None, step=None, method='single')

参数:
window :移动窗口的大小
min_periods :窗口中需要的最小观测值数量
center :将标签设置在窗口的中心。
win_type :提供一个窗口类型。
on : str, optional
axis:int或str,默认为0
closed :使区间在 “右”、”左”、”两者 “或 “两者 “的端点上关闭。

返回 :一个窗口或滚动的子类,用于特定的操作。

二、用法实例:

d1 = data.groupby(['日期'])['商品金额'].sum().reset_index(drop = False)
d1['m2_商品金额'] = d1['商品金额'].rolling(2).mean()
d1['m3_商品金额'] = d1['商品金额'].rolling(3).mean()

d1

结果显示:

 使用center参数

d1['m3_c_商品金额'] = d1['商品金额'].rolling(3,center= True).mean()

 比较m3_商品金额、m3_c_商品金额的值,m3_商品金额的值从第三行开始部位NAN,而m3_c_商品金额 的值从第二行开始不为NAN,相当于将整体的数据向上平移了,计算值位于中间位置。

综合实例

计算移动窗口观测值之和:

d1['sum_5'] =d1['商品金额'].rolling(5).sum()

d1

计算移动窗口最小值:

d1['min_3'] =d1['商品金额'].rolling(3).min()
d1

 计算移动窗口均值累计、移动观测值之和累计:

d1['sum_cum_3'] =d1['商品金额'].rolling(3).sum().cumsum()
d1['m_cum_3'] =d1['商品金额'].rolling(3).mean().cumsum()
d1

计算指定数据列   累加值

 三、与rolling()配合使用的常用函数包括:

count:返回移动窗口中非NA观测值的数量。

max:返回移动窗口的最小值。

min:返回移动窗口的最大值。

diff:返回观测值的第一个离散差。

mean:返回移动窗口的均值。

median:返回移动窗口的中位数。

round:返回保留指定位数的观测值。

sum:返回移动窗口中观测值的总和。

std:返回移动窗口的标准差。

var:返回移动窗口的方差。

corr:移动窗口的相关系数。

abs:返回观测值的绝对值。

cov:计算数据样本的协方差矩阵。

skew:样本值的偏度(三阶矩),即数据分布的对称性。

kurt:样本值的峰度(四阶矩),即数据在均值附近分布的集中度。

describe:给出样本的基本描述(基本统计量如均值、标准差等)。

apply:对移动窗口中的值进行函数计算。

agg:在指定的轴上实现一个或多个操作。

cumsum:依次给出前1、2、… 、n个数的和。

cumprod:依次给出前1、2、… 、n个数的积。

cummax:依次给出前1、2、… 、n个数的最大值。

cummin:依次给出前1、2、… 、n个数的最小值。

常用参数转载于:https://blog.csdn.net/halps/article/details/127281333

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值