时间序列数据统计—滑动窗口

窗口函数

  1. import pandas as pd
  2. import numpy as np
  3. ser_obj = pd.Series(np.random.randn(1000),
  4. index=pd.date_range('20180101', periods=1000))
  5. ser_obj = ser_obj.cumsum()
  6. print(ser_obj.head())
  1. 2018-01-01 0.797334
  2. 2018-01-02 0.451286
  3. 2018-01-03 1.329133
  4. 2018-01-04 0.416577
  5. 2018-01-05 0.610993
  6. Freq: D, dtype: float64
  1. r_obj = ser_obj.rolling(window=5)
  2. r_obj2 = ser_obj.rolling(window=5, center=True)
  3. print(r_obj)
  1. Rolling [window=5,center=False,axis=0]
  1. print(r_obj2.mean())
  2. # 验证:
  3. # 前5个数据的均值
  4. # print(ser_obj[0:5].mean())
  5. # 1-6个数据的均值
  6. # print(ser_obj[1:6].mean())
  1. 2018-01-01 NaN
  2. 2018-01-02 NaN
  3. 2018-01-03 0.721065
  4. 2018-01-04 0.829352
  5. 2018-01-05 0.694121
  6. 2018-01-06 0.275495
  7. 2018-01-07 0.149214
  8. 2018-01-08 0.417734
  9. 2018-01-09 0.520458
  10. 2018-01-10 1.034506
  11. 2018-01-11 1.812417
  12. 2018-01-12 2.457410
  13. 2018-01-13 2.809996
  14. 2018-01-14 3.046443
  15. 2018-01-15 2.838209
  16. 2018-01-16 2.457822
  17. 2018-01-17 2.148508
  18. 2018-01-18 1.647887
  19. 2018-01-19 1.083220
  20. 2018-01-20 1.013525
  21. 2018-01-21 0.941850
  22. 2018-01-22 0.765751
  23. 2018-01-23 0.703581
  24. 2018-01-24 0.744616
  25. 2018-01-25 0.301710
  26. 2018-01-26 -0.168597
  27. 2018-01-27 -0.851726
  28. 2018-01-28 -1.621299
  29. 2018-01-29 -2.538815
  30. 2018-01-30 -3.251647
  31. ...
  32. 2020-08-28 -50.581143
  33. 2020-08-29 -51.826380
  34. 2020-08-30 -52.950275
  35. 2020-08-31 -53.412339
  36. 2020-09-01 -53.824206
  37. 2020-09-02 -54.099840
  38. 2020-09-03 -54.140219
  39. 2020-09-04 -54.215937
  40. 2020-09-05 -54.242818
  41. 2020-09-06 -53.908675
  42. 2020-09-07 -53.493851
  43. 2020-09-08 -53.209943
  44. 2020-09-09 -52.942718
  45. 2020-09-10 -53.038547
  46. 2020-09-11 -53.188028
  47. 2020-09-12 -53.731145
  48. 2020-09-13 -54.091879
  49. 2020-09-14 -54.867172
  50. 2020-09-15 -55.202294
  51. 2020-09-16 -55.440556
  52. 2020-09-17 -54.926439
  53. 2020-09-18 -54.619663
  54. 2020-09-19 -54.128376
  55. 2020-09-20 -54.274526
  56. 2020-09-21 -54.527463
  57. 2020-09-22 -55.382880
  58. 2020-09-23 -56.309192
  59. 2020-09-24 -57.422908
  60. 2020-09-25 NaN
  61. 2020-09-26 NaN
  62. Freq: D, Length: 1000, dtype: float64
  1. print(r_obj2.mean())
  1. 2018-01-01 NaN
  2. 2018-01-02 NaN
  3. 2018-01-03 0.721065
  4. 2018-01-04 0.829352
  5. 2018-01-05 0.694121
  6. 2018-01-06 0.275495
  7. 2018-01-07 0.149214
  8. 2018-01-08 0.417734
  9. 2018-01-09 0.520458
  10. 2018-01-10 1.034506
  11. 2018-01-11 1.812417
  12. 2018-01-12 2.457410
  13. 2018-01-13 2.809996
  14. 2018-01-14 3.046443
  15. 2018-01-15 2.838209
  16. 2018-01-16 2.457822
  17. 2018-01-17 2.148508
  18. 2018-01-18 1.647887
  19. 2018-01-19 1.083220
  20. 2018-01-20 1.013525
  21. 2018-01-21 0.941850
  22. 2018-01-22 0.765751
  23. 2018-01-23 0.703581
  24. 2018-01-24 0.744616
  25. 2018-01-25 0.301710
  26. 2018-01-26 -0.168597
  27. 2018-01-27 -0.851726
  28. 2018-01-28 -1.621299
  29. 2018-01-29 -2.538815
  30. 2018-01-30 -3.251647
  31. ...
  32. 2020-08-28 -50.581143
  33. 2020-08-29 -51.826380
  34. 2020-08-30 -52.950275
  35. 2020-08-31 -53.412339
  36. 2020-09-01 -53.824206
  37. 2020-09-02 -54.099840
  38. 2020-09-03 -54.140219
  39. 2020-09-04 -54.215937
  40. 2020-09-05 -54.242818
  41. 2020-09-06 -53.908675
  42. 2020-09-07 -53.493851
  43. 2020-09-08 -53.209943
  44. 2020-09-09 -52.942718
  45. 2020-09-10 -53.038547
  46. 2020-09-11 -53.188028
  47. 2020-09-12 -53.731145
  48. 2020-09-13 -54.091879
  49. 2020-09-14 -54.867172
  50. 2020-09-15 -55.202294
  51. 2020-09-16 -55.440556
  52. 2020-09-17 -54.926439
  53. 2020-09-18 -54.619663
  54. 2020-09-19 -54.128376
  55. 2020-09-20 -54.274526
  56. 2020-09-21 -54.527463
  57. 2020-09-22 -55.382880
  58. 2020-09-23 -56.309192
  59. 2020-09-24 -57.422908
  60. 2020-09-25 NaN
  61. 2020-09-26 NaN
  62. Freq: D, Length: 1000, dtype: float64
  1. # 画图查看
  2. import matplotlib.pyplot as plt
  3. %matplotlib inline
  4. plt.figure(figsize=(15, 5))
  5. ser_obj.plot(style='r--')
  6. ser_obj.rolling(window=10, center=False).mean().plot(style='g')
  7. ser_obj.rolling(window=10, center=True).mean().plot(style='b')

pandas时间序列滑窗的更多相关文章

  1. c#滑窗缓存

    前言 在大数据时代,软件系统需要具备处理海量数据的能力,同时也更加依赖于系统强大的存储能力与数据响应能力.各种大数据的工具如雨后春笋般孕育而生,这对于系统来说是极大的利好.但在后端采用分布式.云存储和 ...

  2. Pandas时间序列

    Pandas时间序列 pandas 提供了一组标准的时间序列处理工具和数据算法 数据类型及操作 Python 标准库的 datetime datetime 模块中的 datetime. time. c ...

  3. 【10.7校内测试】【队列滑窗】【2-sat】【贪心+栈二分+线段树(noip模拟好题)】【生日祭!】

    比较好想的一道题,直接用队列滑窗,因为扫一遍往队列里加东西时,改变的只有一个值,开桶储存好就行了! #include<bits/stdc++.h> using namespace std; ...

  4. matlab核函数与滑窗

    在处理图像时,为了提取特征,经常用各种核函数和图像进行卷积,其实就是通过一个矩阵以滑窗的形式与原图像进行点乘求和,可以看作对一个像素和附近像素进行了加权平均. 比如经常用3x3的近似高斯卷积核 0 1 ...

  5. TCP系列31—窗口管理&流控—5、TCP流控与滑窗

    一.TCP流控 之前我们介绍过TCP是基于窗口的流量控制,在TCP的发送端会维持一个发送窗口,我们假设发送窗口的大小为N比特,网络环回时延为RTT,那么在网络状况良好没有发生拥塞的情况下,发送端每个R ...

  6. 计蒜客 A2232.程序设计:蒜厂年会-单调队列(双端队列(STL deque)实现)滑窗维护最小前缀和

    程序设计:蒜厂年会 问答问题反馈 只看题面 16.79% 1000ms 262144K   在蒜厂年会上有一个抽奖,在一个环形的桌子上,有 nn 个纸团,每个纸团上写一个数字,表示你可以获得多少蒜币. ...

  7. [poj 3261]后缀数组+滑窗最小值

    题目链接:http://poj.org/problem?id=3261 这个是可以交叉的重复串,所以用height就可以了,但是题目说让重复k次以上,也就是直接做一个k-1长度的滑窗最小值,从这些最小 ...

  8. HDU 6319.Problem A. Ascending Rating-经典滑窗问题求最大值以及COUNT-单调队列 (2018 Multi-University Training Contest 3 1001)

    2018 Multi-University Training Contest 3 6319.Problem A. Ascending Rating 题意就是给你长度为k的数列,如果数列长度k<n ...

  9. HDU 5696 RMQ+滑窗

    区间的价值 Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Subm ...

随机推荐

  1. HDU 2647 Reward【反向拓扑排序】

    Reward Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submis ...

  2. HDU 2552 三足鼎立(数学函数)

    /* <耶律javac++>欲找出三人所在逐个击破, 现在他发现威士忌的位置s,天外来客的位置u, 不过很难探查到亦纷菲v所在何处,只能知道三人满足关系: arctan(1/s) = ar ...

  3. Python与数据结构[4] -> 散列表[1] -> 分离链接法的 Python 实现

    分离链接法 / Separate Chain Hashing 前面完成了一个基本散列表的实现,但是还存在一个问题,当散列表插入元素冲突时,散列表将返回异常,这一问题的解决方式之一为使用链表进行元素的存 ...

  4. 利用PyPDF2删除PDF文件首页

    前话:有个朋友让我给他编辑他们公司的PDF文件,签名的日期时间不对,需要进(nong)行(xu)优(zuo)化(jia).而我手上只有两个管理pdf的软件,一个福晰阅读器,还有一个福晰编辑器.但是阅读 ...

  5. SPOJ PT07J - Query on a tree III(划分树)

    PT07J - Query on a tree III #tree You are given a node-labeled rooted tree with n nodes. Define the ...

  6. 【动态规划】矩形嵌套 (DGA上的动态规划)

    [动态规划]矩形嵌套 时间限制: 1 Sec  内存限制: 128 MB提交: 23  解决: 9[提交][状态][讨论版] 题目描述 有n个矩形,每个矩形可以用a,b来描述,表示长和宽.矩形X(a, ...

  7. luogu P1136 迎接仪式

    luogu P1136 迎接仪式 本题的难点是状态设计, n^2*m 的状态设计转移太过垄杂,emmmm反正我写不出来QAQ 参考了题解 /*相同字符不用调换,一个字符最多被调换一次否则会有等价多方案 ...

  8. [P2396] yyy loves Maths VII

    Link: P2396 传送门 Solution: 一眼能看出$O(n*2^n)$的状压$dp$ 但此题是个卡常题,$n=23/24$的时候就别想过了 这题算是提供了一种对状压$dp$的优化思路吧 原 ...

  9. [BZOJ 2743] 采花

    Link:https://www.lydsy.com/JudgeOnline/problem.php?id=2743 Algorithm: 此题询问区间内出现次数超过1个的数字 明显在线做无从下手,无 ...

  10. 十. 图形界面(GUI)设计12.滚动条

    滚动条(JScrollBar)也称为滑块,用来表示一个相对值,该值代表指定范围内的一个整数.例如,用Word编辑文档时,编辑窗右边的滑块对应当前编辑位置在整个文档中的相对位置,可以通过移动选择新的编辑 ...