pandas的resample重采样的使用


Posted in Python onApril 24, 2020

Pandas中的resample,重新采样,是对原样本重新处理的一个方法,是一个对常规时间序列数据重新采样和频率转换的便捷的方法。

降采样:高频数据到低频数据

升采样:低频数据到高频数据

主要函数:resample()(pandas对象都会有这个方法)

resample方法的参数

参数 说明
freq 表示重采样频率,例如‘M'、‘5min',Second(15)
how='mean' 用于产生聚合值的函数名或数组函数,例如‘mean'、‘ohlc'、np.max等,默认是‘mean',其他常用的值由:‘first'、‘last'、‘median'、‘max'、‘min'
axis=0 默认是纵轴,横轴设置axis=1
fill_method = None 升采样时如何插值,比如‘ffill'、‘bfill'等
closed = ‘right' 在降采样时,各时间段的哪一段是闭合的,‘right'或‘left',默认‘right'
label= ‘right' 在降采样时,如何设置聚合值的标签,例如,9:30-9:35会被标记成9:30还是9:35,默认9:35
loffset = None 面元标签的时间校正值,比如‘-1s'或Second(-1)用于将聚合标签调早1秒
limit=None 在向前或向后填充时,允许填充的最大时期数
kind = None 聚合到时期(‘period')或时间戳(‘timestamp'),默认聚合到时间序列的索引类型
convention = None 当重采样时期时,将低频率转换到高频率所采用的约定(start或end)。默认‘end'

首先创建一个Series,采样频率为一分钟。 

>>> index = pd.date_range('1/1/2000', periods=9, freq='T')
>>> series = pd.Series(range(9), index=index)
>>> series
2000-01-01 00:00:00  0
2000-01-01 00:01:00  1
2000-01-01 00:02:00  2
2000-01-01 00:03:00  3
2000-01-01 00:04:00  4
2000-01-01 00:05:00  5
2000-01-01 00:06:00  6
2000-01-01 00:07:00  7
2000-01-01 00:08:00  8
Freq: T, dtype: int64

降低采样频率为三分钟 

>>> series.resample('3T').sum()
2000-01-01 00:00:00   3
2000-01-01 00:03:00  12
2000-01-01 00:06:00  21
Freq: 3T, dtype: int64

降低采样频率为三分钟,但是每个标签使用right来代替left。请注意,bucket中值的用作标签。

>>> series.resample('3T', label='right').sum()
2000-01-01 00:03:00   3
2000-01-01 00:06:00  12
2000-01-01 00:09:00  21
Freq: 3T, dtype: int64

降低采样频率为三分钟,但是关闭right区间。 

>>> series.resample('3T', label='right', closed='right').sum()
2000-01-01 00:00:00   0
2000-01-01 00:03:00   6
2000-01-01 00:06:00  15
2000-01-01 00:09:00  15
Freq: 3T, dtype: int64

增加采样频率到30秒

>>> series.resample('30S').asfreq()[0:5] #select first 5 rows
2000-01-01 00:00:00   0
2000-01-01 00:00:30  NaN
2000-01-01 00:01:00   1
2000-01-01 00:01:30  NaN
2000-01-01 00:02:00   2
Freq: 30S, dtype: float64

增加采样频率到30S,使用pad方法填充nan值。

>>> series.resample('30S').pad()[0:5]
2000-01-01 00:00:00  0
2000-01-01 00:00:30  0
2000-01-01 00:01:00  1
2000-01-01 00:01:30  1
2000-01-01 00:02:00  2
Freq: 30S, dtype: int64

增加采样频率到30S,使用bfill方法填充nan值。 

>>> series.resample('30S').bfill()[0:5]
2000-01-01 00:00:00  0
2000-01-01 00:00:30  1
2000-01-01 00:01:00  1
2000-01-01 00:01:30  2
2000-01-01 00:02:00  2
Freq: 30S, dtype: int64

通过apply运行一个自定义函数 

>>> def custom_resampler(array_like):
...   return np.sum(array_like)+5
>>> series.resample('3T').apply(custom_resampler)
2000-01-01 00:00:00   8
2000-01-01 00:03:00  17
2000-01-01 00:06:00  26
Freq: 3T, dtype: int64

到此这篇关于pandas的resample重采样的使用的文章就介绍到这了,更多相关pandas resample重采样内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python 文件和路径操作函数小结
Nov 23 Python
python模拟新浪微博登陆功能(新浪微博爬虫)
Dec 24 Python
python使用nntp读取新闻组内容的方法
May 08 Python
详解python之多进程和进程池(Processing库)
Jun 09 Python
Python使用装饰器模拟用户登陆验证功能示例
Aug 24 Python
python2和python3的输入和输出区别介绍
Nov 20 Python
python实现从本地摄像头和网络摄像头截取图片功能
Jul 11 Python
2020新版本pycharm+anaconda+opencv+pyqt环境配置学习笔记,亲测可用
Mar 24 Python
python将音频进行变速的操作方法
Apr 08 Python
从零开始的TensorFlow+VScode开发环境搭建的步骤(图文)
Aug 31 Python
python 匿名函数与三元运算学习笔记
Oct 23 Python
Python使用windows设置定时执行脚本
Nov 12 Python
python实现在内存中读写str和二进制数据代码
Apr 24 #Python
pandas DataFrame 数据选取,修改,切片的实现
Apr 24 #Python
pandas数据选取:df[] df.loc[] df.iloc[] df.ix[] df.at[] df.iat[]
Apr 24 #Python
python查找特定名称文件并按序号、文件名分行打印输出的方法
Apr 24 #Python
python 读取二进制 显示图片案例
Apr 24 #Python
150行python代码实现贪吃蛇游戏
Apr 24 #Python
用 Python 制作地球仪的方法
Apr 24 #Python
You might like
php从字符串创建函数的方法
2015/03/16 PHP
PHP中error_reporting()用法详解
2015/08/31 PHP
orm获取关联表里的属性值
2016/04/17 PHP
PHP简单实现生成txt文件到指定目录的方法
2016/04/25 PHP
laravel-admin 管理平台获取当前登陆用户信息的例子
2019/10/08 PHP
PHP实现单例模式建立数据库连接的方法分析
2020/02/11 PHP
js自带函数备忘 数组
2006/12/29 Javascript
学习jquery之一
2007/04/27 Javascript
javascript 获取网页参数系统
2008/07/19 Javascript
jQuery ui 1.7更新小结
2009/08/15 Javascript
jQuery替换字符串(实例代码)
2013/11/13 Javascript
jscript读写二进制文件的方法
2015/04/22 Javascript
JavaScript中eval()函数用法详解
2015/12/14 Javascript
jQuery添加删除DOM元素方法详解
2016/01/18 Javascript
jQuery使用$获取对象后检查该对象是否存在的实现方法
2016/09/04 Javascript
Bootstrap基本组件学习笔记之input输入框组(9)
2016/12/07 Javascript
搭建简单的nodejs http服务器详解
2017/03/09 NodeJs
详解nodejs的express如何自动生成项目框架
2017/07/12 NodeJs
js最简单的双向绑定实例讲解
2018/01/02 Javascript
解决vue中监听input只能输入数字及英文或者其他情况的问题
2018/08/30 Javascript
jQuery实现的中英文切换功能示例
2019/01/11 jQuery
微信小程序 bindtap 传参的实例代码
2020/02/21 Javascript
[30:55]完美世界DOTA2联赛PWL S2 Magma vs LBZS 第二场 11.18
2020/11/18 DOTA
Python制作爬虫采集小说
2015/10/25 Python
Python实现结构体代码实例
2020/02/10 Python
python爬虫开发之urllib模块详细使用方法与实例全解
2020/03/09 Python
Python基于字典实现switch case函数调用
2020/07/22 Python
localStorage 设置过期时间的方法实现
2018/12/21 HTML / CSS
Hotels.com香港酒店网:你的自由行酒店订房专家
2018/01/22 全球购物
出纳岗位职责
2013/11/09 职场文书
外企求职信范文分享
2013/12/31 职场文书
元旦文艺汇演主持词
2014/03/26 职场文书
2014年百日安全生产活动总结
2014/05/04 职场文书
2013年最新自荐信范文
2014/06/23 职场文书
基层干部个人对照检查及整改措施
2014/10/28 职场文书
赞美教师的句子
2019/09/02 职场文书