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 相关文章推荐
基于Django模板中的数字自增(详解)
Sep 05 Python
对Python中的@classmethod用法详解
Apr 21 Python
浅谈Python 多进程默认不能共享全局变量的问题
Jan 11 Python
linux查找当前python解释器的位置方法
Feb 20 Python
python批量爬取下载抖音视频
Jun 17 Python
pytorch查看torch.Tensor和model是否在CUDA上的实例
Jan 03 Python
PyCharm 无法 import pandas 程序卡住的解决方式
Mar 09 Python
python使用for...else跳出双层嵌套循环的方法实例
May 17 Python
python中字符串的编码与解码详析
Dec 03 Python
python3实现无权最短路径的方法
May 12 Python
python读取并查看npz/npy文件数据以及数据显示方法
Apr 14 Python
python实现简单的三子棋游戏
Apr 28 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获取随机数字和字母的方法详解
2013/06/06 PHP
PHP实现删除字符串中任何字符的函数
2015/08/11 PHP
关于Yii2框架跑脚本时内存泄漏问题的分析与解决
2019/12/01 PHP
使用onbeforeunload属性后的副作用
2007/03/08 Javascript
原生js实现给指定元素的后面追加内容
2013/04/10 Javascript
window.showModalDialog参数传递中含有特殊字符的处理方法
2013/06/06 Javascript
javascript预加载图片、css、js的方法示例介绍
2013/10/14 Javascript
JavaScript简单下拉菜单实例代码
2015/09/07 Javascript
编写高性能Javascript代码的N条建议
2015/10/12 Javascript
JS模拟Dialog弹出浮动框效果代码
2015/10/16 Javascript
javascript运算符语法全面概述
2016/07/14 Javascript
基于jQuery实现咖啡订单管理简单应用
2017/02/10 Javascript
简单实现js菜单栏切换效果
2017/03/04 Javascript
为vue-router懒加载时下载js的过程中添加loading提示避免无响应问题
2018/04/03 Javascript
elementUI select组件使用及注意事项详解
2019/05/29 Javascript
Vue实现点击当前行变色
2020/12/14 Vue.js
Python中__name__的使用实例
2015/04/14 Python
python实现汉诺塔算法
2021/03/01 Python
详解python中__name__的意义以及作用
2019/08/07 Python
Python函数的返回值、匿名函数lambda、filter函数、map函数、reduce函数用法实例分析
2019/12/26 Python
python代码xml转txt实例
2020/03/10 Python
canvas裁剪clip()函数的具体使用
2018/03/01 HTML / CSS
web字体加载方案优化小结
2019/11/29 HTML / CSS
英国领先的高街书籍专家:Waterstones
2018/02/01 全球购物
Erwin Müller穆勒家居瑞士官网:您整个家庭的邮购公司
2019/12/28 全球购物
局部内部类是否可以访问非final变量?
2013/04/20 面试题
程序运行正确, 但退出时却"core dump"了,怎么回事
2014/02/19 面试题
南京某公司笔试题
2013/01/27 面试题
银行实习自我鉴定
2013/10/12 职场文书
农村面貌改造提升实施方案
2014/03/18 职场文书
共产党员公开承诺书范文
2014/03/28 职场文书
闭幕式主持词
2014/04/02 职场文书
销售员自我评价
2015/03/11 职场文书
新闻简讯格式及范文
2015/07/22 职场文书
2016十一国庆节感言
2015/12/09 职场文书
《打电话》教学反思
2016/02/22 职场文书