本篇文章将会用几个非常简单的例子说明rolling()函数的用法。
import random a = [x for x in range(10)]b = [x for x in range(10)]random.shuffle(a)random.shuffle(b)test_a = a test_b = btest_t = pd.DataFrame(data = [a,b]).Ttest_t
结果我们得到:
(资料图片)
01075189221314452598667700843936
然后我们将rolling()函数作用到这个DataFrame上。
t1 = test_t.rolling(10).sum()t2 = test_t.rolling(5).sum()t3 = test_t.rolling(3).sum()c = pd.concat([t1,t2,t3,test_t],axis=1)c
得到以下结果:
010101010NaNNaNNaNNaNNaNNaN751NaNNaNNaNNaNNaNNaN892NaNNaNNaNNaN17.015.0213NaNNaNNaNNaN11.014.0144NaNNaN23.021.08.07.0525NaNNaN25.024.015.014.0986NaNNaN23.022.020.017.0677NaNNaN21.021.015.015.0008NaNNaN24.020.010.010.043945.045.022.024.07.09.036
总结: 1.rolling(k)作为一个窗口函数,帮助我们批量处理一个DataFrame的子集,每个子集包含k个数据。 2.在实际应用中,它通常用于信号处理和时间序列数据。 3.在这个过程中,我们一次取一个k的窗口大小,并对其执行一些所需的数学运算。大小为 k 的窗口表示一次有 k 个连续值。 4. 在非常简单的情况下,所有“k”值的权重相等。
其他可能需要了解的地方: 1.源码:
Syntax : DataFrame.rolling(window, min_periods=None, freq=None, center=False, win_type=None, on=None, axis=0, closed=None)