rolling()函数

本篇文章将会用几个非常简单的例子说明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 = b
test_t = pd.DataFrame(data = [a,b]).T
test_t

结果我们得到:

	0	1
0	7	5
1	8	9
2	2	1
3	1	4
4	5	2
5	9	8
6	6	7
7	0	0
8	4	3
9	3	6

然后我们将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

得到以下结果:


0	1	0	1	0	1	0	1
0	NaN	NaN	NaN	NaN	NaN	NaN	7	5
1	NaN	NaN	NaN	NaN	NaN	NaN	8	9
2	NaN	NaN	NaN	NaN	17.0	15.0	2	1
3	NaN	NaN	NaN	NaN	11.0	14.0	1	4
4	NaN	NaN	23.0	21.0	8.0	7.0	5	2
5	NaN	NaN	25.0	24.0	15.0	14.0	9	8
6	NaN	NaN	23.0	22.0	20.0	17.0	6	7
7	NaN	NaN	21.0	21.0	15.0	15.0	0	0
8	NaN	NaN	24.0	20.0	10.0	10.0	4	3
9	45.0	45.0	22.0	24.0	7.0	9.0	3	6

总结:
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)

猜你喜欢

转载自blog.csdn.net/Romaga/article/details/125245317
今日推荐