Pandas窗口函数
为了处理数字数据,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())
执行上面示例代码,得到以下结果 -
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
注 - 由于窗口大小为
3
(window
),前两个元素有空值,第三个元素的值将是n
,n-1
和n-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())
执行上面示例代码得到以下结果 -
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
.ewm()函数
ewm()
可应用于系列数据。指定com
,span
,halflife
参数,并在其上应用适当的统计函数。它以指数形式分配权重。
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())
执行上面示例函数,得到以下结果 -
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
窗口函数主要用于通过平滑曲线来以图形方式查找数据内的趋势。如果日常数据中有很多变化,并且有很多数据点可用,那么采样和绘图就是一种方法,应用窗口计算并在结果上绘制图形是另一种方法。 通过这些方法,可以平滑曲线或趋势。
Pandas窗口函数的更多相关文章
- Pandas教程目录
Pandas数据结构 Pandas系列 Pandas数据帧(DataFrame) Pandas面板(Panel) Pandas基本功能 Pandas描述性统计 Pandas函数应用 Pandas重建索 ...
- Python人工智能学习笔记
Python教程 Python 教程 Python 简介 Python 环境搭建 Python 中文编码 Python 基础语法 Python 变量类型 Python 运算符 Python 条件语句 ...
- pandas处理时间序列(4): 移动窗口函数
六.移动窗口函数 移动窗口和指数加权函数类别如↓: rolling_mean 移动窗口的均值 pandas.rolling_mean(arg, window, min_periods=None, fr ...
- Pandas | 15 窗口函数
为了处理数字数据,Pandas提供了几个变体,如滚动,展开和指数移动窗口统计的权重. 其中包括总和,均值,中位数,方差,协方差,相关性等.本章讨论的是在DataFrame对象上应用这些方法. .rol ...
- Pandas系列(七)-计算工具介绍
内容目录 1. 统计函数 2. 窗口函数 3. 加深加强 数据准备 # 导入相关库 import numpy as np import pandas as pd #Pandas 中包含了非常丰富的计算 ...
- numpy pandas matplotlib
import numpy as np import pandas as pd import matplotlib.pyplot as plt ---------------numpy--------- ...
- Pandas v0.23.4手册汉化
Pandas手册汉化 此页面概述了所有公共pandas对象,函数和方法.pandas.*命名空间中公开的所有类和函数都是公共的. 一些子包是公共的,其中包括pandas.errors, pandas. ...
- pandas时间序列滑窗
时间序列数据统计-滑动窗口 窗口函数 import pandas as pd import numpy as np ser_obj = pd.Series(np.random.randn(1000), ...
- Pandas 计算工具介绍
# 导入相关库 import numpy as np import pandas as pd 统计函数 最常见的计算工具莫过于一些统计函数了.首先构建一个包含了用户年龄与收入的 DataFrame i ...
随机推荐
- 史上最全Vim快捷键键位图 -- 入门到进阶
文章欢迎转载,但转载时请保留本段文字,并置于文章的顶部 作者:卢钧轶(cenalulu) 本文原文地址:http://cenalulu.github.io/linux/all-vim-cheatshe ...
- 第13章—数据库连接池(Druid)
spring boot 系列学习记录:http://www.cnblogs.com/jinxiaohang/p/8111057.html 码云源码地址:https://gitee.com/jinxia ...
- unix_timestamp 和 from_unixtime 时间戳函数 区别
1.unix_timestamp 将时间转化为时间戳.(date 类型数据转换成 timestamp 形式整数) 没传时间参数则取当前时间的时间戳 mysql> select unix_time ...
- tpot从elastic search拉攻击数据之三 用于拉取的java程序
package download; import org.json.JSONArray; import java.io.*; import java.net.URL; import java.net. ...
- make Makefile 与 cmake CMakeLists.txt
make Makefile 与 cmake CMakeLists.txt 大家都知道,写程序大体步骤为: 1.用编辑器编写源代码,如.c文件. 2.用编译器编译代码生成目标文件,如.o. 3.用链接器 ...
- Python 模块之 time & datetime
Python 中提供了对时间日期的多种多样的处理方式,主要是在有 time 和 datetime 两个模块. time 在 Python 文档里,time 是归类在 Generic Operating ...
- mysql 如何找出两张表之间的关系
分析步骤: #1.先站在左表的角度去找 是否左表的多条记录可以对应右表的一条记录,如果是,则证明左表的一个字段foreign key 右表一个字段(通常是id) #2.再站在右表的角度去找 是否右表的 ...
- git常用命令总结(转载)
Workspace:工作区 Index / Stage:暂存区 Repository:仓库区(或本地仓库) Remote:远程仓库 一.新建代码库 # 在当前目录新建一个Git代码库 $ git in ...
- ngs中reads mapping-pku的生信课程
4.NGS中的reads mapping 顾名思义,就是将测序的得到的DNA定位在基因组上. 因为二代测序的得到的序列是较短的,reads mapping很好地解决了这个问题. 本质上reads ma ...
- go——工程结构
Go是一门推崇软件工程理念的编程语言,它为开发周期的每个环节都提供了完备的工具和支持. Go语言高度强调代码和项目的规范和统一,这几种体现在工程结构或者说代码体制的细节之处. 1.工作区 一般情况下, ...