pandas dataframe rolling移动计算方式
作者:zhlkh
在Pandas中,rolling()方法用于执行移动窗口计算,常用于时间序列数据分析,例如,计算某商品的7天或1个月销售总量,可以通过rolling()轻松实现,该方法的关键参数包括window(窗口大小),min_periods(最小计算周期)
pandas dataframe rolling移动计算
rolling()用法
rolling()方法主要用于移动运算,什么叫移动运算哪?
最简单的理解就是
比如商品的销售来说,想知道A商品每7天每1个月的销售数量,这个时候用rolling()方法就可以轻松实现
df.rolling(window, min_periods=None, center=False, win_type=None, on=None, axis=0, closed=None)
- window: 向前计算的行数,如设置为3,则第一行为NaN+NaN+1 第二行为NaN+1+2 第三行为1+2+3
- min_periods:最小的向前计算行数,默认为None,当window设置为3时,第一行数据向前查询时不满足3行,则值为设置为NaN,当设置为1时,就会抛弃不存在的行,只取第一行。
- center:把窗口的标签设置为居中。布尔型,默认False,居右
- win_type:窗口的类型。截取窗的各种函数。字符串类型,默认为None。各种类型
- on:可选参数。对于dataframe而言,指定计算后的对应列名,如果计算列为salenum,原有的数据列包含为goods,当on=goods时计算后的数据就为goods salenum两个列
- axis:0/1,默认为0,即对列进行计算
- closed:定义区间的开闭,支持int类型的window。对于offset类型默认是左开右闭的即默认为right。可以根据情况指定为left both等。
以下代码截图来自Jupyter中文集成版(Python整合版)
Git地址:
https://github.com/DaiMaBang/Jupyter
计算巧克力每3天的销售数量,指定了on和计算列(系统默认会找数值列进行计算)
通过agg方法,指定对应的列的计算方法
求平均值
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。