Sliding window in time series []

%matplotlib inline 
import matplotlib.pylab
import numpy as np
import pandas as pd
df = pd.Series(np.random.randn(600), index = pd.date_range('7/1/2016', freq = 'D', periods = 600))
r = df.rolling(window = 10)
#r.max, r.median, r.std, r.skew, r.sum, r.var
print(r.mean())

NaN 2016-07-01
2016-07-02 NaN
2016-07-03 NaN
2016-07-04 NaN
2016-07-05 NaN
2016-07-06 NaN
2016-07-07 NaN
2016-07-08 NaN
2016- 07-09 NaN
2016-07-10 0.300133
2016-07-11 0.284780
2016-07-12 0.252831
2016-07-13 0.220699
2016-07-14 0.167137
2016-07-15 0.018593
2016-07-16 -0.061414
2016-07 -0.134593 -17
2016-07-18 -0.153333
2016-07-19 -0.218928
2016-07-20 -0.169426
2016-07-21 -0.219747
2016-07-22 -0.181266
2016-07-23 -0.173674
2016-07- 24 -0.130629
2016-07-25 -0.166730
2016-07-26 -0.233044
2016-07-27 -0.256642
2016-07-28 -0.280738
2016-07-29 -0.289893
2016-07-30 -0.379625

2018-01-22 -0.211467
2018-01-23 0.034996
2018-01-24 -0.105910
2018-01-25 -0.145774
2018-01-26 -0.089320
2018-01-27 -0.164370
2018-01-28 -0.110892
2018-01-29 -0.205786
2018-01-30 -0.101162
2018-01-31 -0.034760
2018-02-01 0.229333
2018-02-02 0.043741
2018-02-03 0.052837
2018-02-04 0.057746
2018-02-05 -0.071401
2018-02-06 -0.011153
2018-02-07 -0.045737
2018-02-08 -0.021983
2018-02-09 -0.196715
2018-02-10 -0.063721
2018-02-11 -0.289452
2018-02-12 -0.050946
2018-02-13 -0.047014
2018-02-14 0.048754
2018-02-15 0.143949
2018-02-16 0.424823
2018-02-17 0.361878
2018-02-18 0.363235
2018-02-19 0.517436
2018-02-20 0.368020
Freq: D, Length: 600, dtype: float64

import matplotlib.pyplot as plt
%matplotlib inline

plt.figure(figsize=(15, 5))

df.plot(style='r--')
df.rolling(window=10).mean().plot(style='b')

Here Insert Picture Description

Published 116 original articles · won praise 10 · views 1346

Guess you like

Origin blog.csdn.net/weixin_44727383/article/details/105007561