为了处理数字数据,Pandas提供了几个变体,如滚动,展开和指数移动窗口统计的权重。 其中包括总和,均值,中位数,方差,协方差,相关性等。

下来学习如何在DataFrame对象上应用上提及的每种方法。

.rolling()函数

这个函数可以应用于一系列数据。指定window=n参数并在其上应用适当的统计函数。

import pandas as pd
import numpy as np df = pd.DataFrame(np.random.randn(10, 4),
index = pd.date_range('1/1/2020', periods=10),
columns = ['A', 'B', 'C', 'D']) print (df.rolling(window=3).mean())
Python

执行上面示例代码,得到以下结果 -

                   A         B         C         D
2020-01-01 NaN NaN NaN NaN
2020-01-02 NaN NaN NaN NaN
2020-01-03 -0.306293 0.214001 -0.076004 -0.200793
2020-01-04 0.236632 -0.437033 0.046111 -0.252062
2020-01-05 0.761818 -0.181635 -0.546929 -0.738482
2020-01-06 1.306498 -0.411834 -0.680948 -0.070285
2020-01-07 0.956877 -0.749315 -0.503484 0.160620
2020-01-08 0.354319 -1.067165 -1.238036 1.051048
2020-01-09 0.262081 -0.898373 -1.059351 0.342291
2020-01-10 0.326801 -0.350519 -1.064437 0.749869
Shell

注 - 由于窗口大小为3(window),前两个元素有空值,第三个元素的值将是nn-1n-2元素的平均值。这样也可以应用上面提到的各种函数了。

.expanding()函数

这个函数可以应用于一系列数据。 指定min_periods = n参数并在其上应用适当的统计函数。

import pandas as pd
import numpy as np df = pd.DataFrame(np.random.randn(10, 4),
index = pd.date_range('1/1/2018', periods=10),
columns = ['A', 'B', 'C', 'D'])
print (df.expanding(min_periods=3).mean())
Python

执行上面示例代码得到以下结果 -

                   A         B         C         D
2018-01-01 NaN NaN NaN NaN
2018-01-02 NaN NaN NaN NaN
2018-01-03 -0.425085 -0.124270 -0.324134 -0.234001
2018-01-04 -0.293824 -0.038188 -0.172855 0.447226
2018-01-05 -0.516146 -0.013441 -0.384935 0.379267
2018-01-06 -0.614905 0.290308 -0.594635 0.414396
2018-01-07 -0.606090 0.121265 -0.604148 0.246296
2018-01-08 -0.597291 0.075374 -0.425182 0.092831
2018-01-09 -0.380505 0.074956 -0.253081 0.146426
2018-01-10 -0.235030 0.018936 -0.259566 0.315200
Shell

.ewm()函数

ewm()可应用于系列数据。指定comspanhalflife参数,并在其上应用适当的统计函数。它以指数形式分配权重。

import pandas as pd
import numpy as np df = pd.DataFrame(np.random.randn(10, 4),
index = pd.date_range('1/1/2019', periods=10),
columns = ['A', 'B', 'C', 'D'])
print (df.ewm(com=0.5).mean())
Python

执行上面示例函数,得到以下结果 -

                   A         B         C         D
2019-01-01 1.047165 0.777385 -1.286948 -0.080564
2019-01-02 0.484093 -0.630998 -0.975172 -0.117832
2019-01-03 0.056189 0.830492 0.116325 1.005547
2019-01-04 -0.363824 1.222173 0.497901 -0.235209
2019-01-05 -0.260685 1.066029 0.391480 1.196190
2019-01-06 0.389649 1.458152 -0.231936 -0.481003
2019-01-07 1.071035 -0.016003 0.387420 -0.170811
2019-01-08 -0.573686 1.052081 1.218439 0.829366
2019-01-09 0.222927 0.556430 0.811838 -0.562096
2019-01-10 0.224624 -1.225446 0.204961 -0.800444
Shell

窗口函数主要用于通过平滑曲线来以图形方式查找数据内的趋势。如果日常数据中有很多变化,并且有很多数据点可用,那么采样和绘图就是一种方法,应用窗口计算并在结果上绘制图形是另一种方法。 通过这些方法,可以平滑曲线或趋势。

Pandas窗口函数的更多相关文章

  1. Pandas教程目录

    Pandas数据结构 Pandas系列 Pandas数据帧(DataFrame) Pandas面板(Panel) Pandas基本功能 Pandas描述性统计 Pandas函数应用 Pandas重建索 ...

  2. Python人工智能学习笔记

    Python教程 Python 教程 Python 简介 Python 环境搭建 Python 中文编码 Python 基础语法 Python 变量类型 Python 运算符 Python 条件语句 ...

  3. pandas处理时间序列(4): 移动窗口函数

    六.移动窗口函数 移动窗口和指数加权函数类别如↓: rolling_mean 移动窗口的均值 pandas.rolling_mean(arg, window, min_periods=None, fr ...

  4. Pandas | 15 窗口函数

    为了处理数字数据,Pandas提供了几个变体,如滚动,展开和指数移动窗口统计的权重. 其中包括总和,均值,中位数,方差,协方差,相关性等.本章讨论的是在DataFrame对象上应用这些方法. .rol ...

  5. Pandas系列(七)-计算工具介绍

    内容目录 1. 统计函数 2. 窗口函数 3. 加深加强 数据准备 # 导入相关库 import numpy as np import pandas as pd #Pandas 中包含了非常丰富的计算 ...

  6. numpy pandas matplotlib

    import numpy as np import pandas as pd import matplotlib.pyplot as plt ---------------numpy--------- ...

  7. Pandas v0.23.4手册汉化

    Pandas手册汉化 此页面概述了所有公共pandas对象,函数和方法.pandas.*命名空间中公开的所有类和函数都是公共的. 一些子包是公共的,其中包括pandas.errors, pandas. ...

  8. pandas时间序列滑窗

    时间序列数据统计-滑动窗口 窗口函数 import pandas as pd import numpy as np ser_obj = pd.Series(np.random.randn(1000), ...

  9. Pandas 计算工具介绍

    # 导入相关库 import numpy as np import pandas as pd 统计函数 最常见的计算工具莫过于一些统计函数了.首先构建一个包含了用户年龄与收入的 DataFrame i ...

随机推荐

  1. 170206、sping注解@autowired和@resource的区别

    新年第一天上班,新的一年,我们17加油!!! @Resource的作用相当于@Autowired,只不过@Autowired按byType自动注入,而@Resource默认按 byName自动注入罢了 ...

  2. 如何修改Myeclipse的JSP模板

    先找到MyEclipse的安装目录, 再找到myeclipse/eclipse/plugins/com.genuitec.eclipse.wizards_5.1.0/templates/jsp (co ...

  3. 巨蟒python全栈开发数据库攻略1:基础攻略

    1.什么是数据库? 2.数据库分类 3.数据库简单介绍 4.安装数据库 5.修改root密码 6.修改字符集 7.sql介绍 8.简单sql操作

  4. Compilation failed: internal java compiler error

    在Idea中编译时出现这个错误:Error:java: Compilation failed: internal java compiler error. Information:Using java ...

  5. python可变参数*args, **kwargs

    python可变参数*args, **kwargs def foo(* args, ** kwargs): print ' args = ',  args print ' kwargs = ',  k ...

  6. Android “swipe” vs “fling”

    onFling will get executed when a user makes a "fling" motion, and said motion has a veloci ...

  7. Elasticsearch中文搜索环境搭建

    Elasticsearch是一个建立在全文搜索引擎 Apache Lucene™ 基础上的搜索引擎,功能强大,最近刚好要研究搜索这一块,简要记录备日后查阅 安装Java JDK,由于Lucene是用J ...

  8. 重置Linux普通账号和root账号密码

    今天想在Linux测试下HTTPie, 突然发现虚拟机里面的Linux, root账号和普通账号密码都忘记了. 百度了半天发现答案都不对, 最后用Google搜到了答案. 本人系统环境: VMware ...

  9. 2 TensorFlow入门笔记之建造神经网络并将结果可视化

    ------------------------------------ 写在开头:此文参照莫烦python教程(墙裂推荐!!!) ---------------------------------- ...

  10. python16_day06【类、RE模块、subprocess模块、xml模块、shelve模块】

    一.shelve模块 import shelve # 基于pickle模块, d = shelve.open('shelve_test') class Test(object): def __init ...