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写的服务监控程序实例
Jan 31 Python
Python中的Numeric包和Numarray包使用教程
Apr 13 Python
对于Python装饰器使用的一些建议
Jun 03 Python
Python实现将罗马数字转换成普通阿拉伯数字的方法
Apr 19 Python
详解Python做一个名片管理系统
Mar 14 Python
浅谈Python2之汉字编码为unicode的问题(即类似\xc3\xa4)
Aug 12 Python
使用Python的Turtle库绘制森林的实例
Dec 18 Python
python实现暗通道去雾算法的示例
Sep 27 Python
python实现图书馆抢座(自动预约)功能的示例代码
Sep 29 Python
详解Python流程控制语句
Oct 28 Python
如何理解python接口自动化之logging日志模块
Jun 15 Python
Python可视化动图组件ipyvizzu绘制惊艳的可视化动图
Apr 21 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 sleep()函数, usleep()函数
2016/08/25 PHP
YII2框架中excel表格导出的方法详解
2017/07/21 PHP
PHP结合Redis+MySQL实现冷热数据交换应用案例详解
2019/07/09 PHP
PHP7 字符串处理机制修改
2021/03/09 PHP
判断页面是关闭还是刷新的js代码
2007/01/28 Javascript
javascript 无提示关闭窗口脚本
2009/08/17 Javascript
JavaScript中几种常见排序算法小结
2011/02/22 Javascript
jQuery实现的个性化返回底部与返回顶部特效代码
2015/10/30 Javascript
Bootstrap学习笔记之css样式设计(2)
2016/06/07 Javascript
利用jsonp跨域调用百度js实现搜索框智能提示
2016/08/24 Javascript
详解vue跨组件通信的几种方法
2017/06/15 Javascript
详解vue2.0 使用动态组件实现 Tab 标签页切换效果(vue-cli)
2017/08/30 Javascript
限时抢购-倒计时的完整实例(分享)
2017/09/17 Javascript
JavaScript实现带有子菜单和控件的slider轮播图效果
2017/11/01 Javascript
react+redux的升级版todoList的实现
2017/12/18 Javascript
React 源码中的依赖注入方法
2018/11/07 Javascript
JavaScript和TypeScript中的void的具体使用
2019/09/12 Javascript
返回上一个url并刷新界面的js代码
2020/09/12 Javascript
用vue写一个日历
2020/11/02 Javascript
nuxt 服务器渲染动态设置 title和seo关键字的操作
2020/11/05 Javascript
python os用法总结
2018/06/08 Python
django 控制页面跳转的例子
2019/08/06 Python
Python全栈之列表数据类型详解
2019/10/01 Python
python代码实现图书管理系统
2020/11/30 Python
html如何对span设置宽度
2019/10/30 HTML / CSS
Roots加拿大官网:加拿大休闲服饰品牌
2016/10/24 全球购物
学院书画协会部门岗位职责
2013/12/01 职场文书
大堂副理的岗位职责范文
2014/02/17 职场文书
学习党的群众路线教育实践活动剖析材料
2014/10/13 职场文书
2014年第四季度入党积极分子思想汇报(十八届四中全会)
2014/11/03 职场文书
学术研讨会欢迎词
2015/01/26 职场文书
军训结束新闻稿
2015/07/17 职场文书
2019年家电促销广告语集锦
2019/10/21 职场文书
话题作文之自信作文
2019/11/15 职场文书
MySQL 重命名表的操作方法及注意事项
2021/05/21 MySQL
Java由浅入深通关抽象类与接口(上篇)
2022/04/26 Java/Android