rolling()函数
rolling函数,这个函数可以被Series对象调用,也可以被DataFrame对象调用,这个函数主要是用来做移动计算的。
举个栗子,假设我们有10天的销售额,我们想每三天求一次总和,比如第五天的总和就是第3天 + 第4天 + 第5天的销售额之和,这个时候我们的rolling函数就派上用场了。
rolling() 函数一般会结合 sum() 函数或 mean() 函数等其他函数一起使用。
amount.rolling(3)相当于创建了一个长度为3的窗口,窗口从上到下依次滑动,我们画一张图吧:
![02.用于数据科学的 Python 基础知识之pandas(下)](https://caovan.com/wp-content/themes/justnews/themer/assets/images/lazy.png)
![02.用于数据科学的 Python 基础知识之pandas(下)](https://caovan.com/wp-content/themes/justnews/themer/assets/images/lazy.png)
amount.rolling(3)就做了类似于图中的事情,然后调用sum函数,会将每个窗口里面的元素加起来,就得到我们输出的结果。另外窗口的大小可以任意,这里我们以3为例。
除了sum()求和,还可以mean()求平均值、std()求方差、max()求最大值、min()求最小值等等。
shift()函数
shift函数是对数据进行移动的操作,假如现在有一个DataFrame数据df,如下所示:
DataFrame.shift(periods=1, freq=None, axis=0)
参数说明:
- periods:类型为int,表示移动的幅度,可以是正数,也可以是负数,默认值是1,1就表示移动一次,注意这里移动的都是数据,而索引是不移动的,移动之后没有对应值的,就赋值为NaN。
- freq: DateOffset, timedelta, or time rule string,可选参数,默认值为None,只适用于时间序列,如果这个参数存在,那么会按照参数值移动时间索引,而数据值没有发生变化。
- axis:{0, 1, ‘index’, ‘columns’},表示移动的方向,如果是0或者’index’表示上下移动,如果是1或者’columns’,则会左右移动。
![02.用于数据科学的 Python 基础知识之pandas(下)](https://caovan.com/wp-content/themes/justnews/themer/assets/images/lazy.png)
原创文章,作者:朋远方,如若转载,请注明出处:https://caovan.com/02-yongyushujukexuede-python-jichuzhishizhipandasxia-2/.html