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方法,指定对应的列的计算方法
求平均值
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论