时间序列数据分析--Time Series--时间序列数据统计—滑动窗口

滑动窗口

  • 在时间窗口上计算各种统计函数
  • 窗口函数
    • 滚动统计    obj.rolling().func
    • 窗口大小 window
    • 窗口是否居中统计  center
##窗口函数--cumsum()
import pandas as pd
import numpy as np

ser_obj = pd.Series(np.random.randn(1000), 
                    index=pd.date_range('20170101', periods=1000))
ser_obj = ser_obj.cumsum()
print(ser_obj.head())
answer
2017-01-01    0.956250
2017-01-02    0.279960
2017-01-03   -0.629871
2017-01-04    0.797499
2017-01-05    0.557393
Freq: D, dtype: float64

r_obj = ser_obj.rolling(window=5)
print(r_obj)
answer
Rolling [window=5,center=False,axis=0]  ####返回的是类对象,需要接统计函数才能展示

print(r_obj.mean().head())
answer:
2017-01-01         NaN
2017-01-02         NaN
2017-01-03         NaN
2017-01-04         NaN
2017-01-05    0.392246
2017-01-06    0.017798
2017-01-07   -0.175184
2017-01-08   -0.137657
2017-01-09   -0.209815
2017-01-10   -0.237701
Freq: D, dtype: float64

# 前5个数据的均值
print(ser_obj[0:5].mean())
answer
0.39224619085269624

# 1-6个数据的均值
print(ser_obj[1:6].mean())
answer:
0.017798268782202475
# 画图查看
import matplotlib.pyplot as plt
%matplotlib inline

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

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

  • 居中显示,将第5个值,从第三个开始
  • print(ser_obj.rolling(window=5, center=True).mean())
    answer:
    2017-01-01          NaN
    2017-01-02          NaN
    2017-01-03     0.392246
    2017-01-04     0.017798
    2017-01-05    -0.175184
    2017-01-06    -0.137657
    2017-01-07    -0.209815
    2017-01-08    -0.237701
    2017-01-09     0.109869
    2017-01-10     0.614796
    2017-01-11     1.203267
    2017-01-12     1.782855

     

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值