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

方法的格式是:

DataFrame.resample(rule, how=None, axis=0, fill_method=None, closed=None, label=None, convention='start',kind=None, loffset=None, limit=None, base=0)

参数详解是:

参数

说明

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

python resample函数_Pandas中resample方法详解相关推荐

  1. php call()函数,PHP中__call()方法详解

    前面给大家介绍了<__construct(),类的构造函数><__destruct(),类的析构函数>,下面继续给大家介绍PHP中__call()方法. __call(),在对 ...

  2. [转载] Python之Numpy模块中的方法详解

    参考链接: Python中的numpy.diag_indices Numpy(Numerical Python)是科学计算基础库,提供大量科学计算相关功能,比如数据统计,随机数生成等,其提供最核心类型 ...

  3. python unicode函数_python 中的unicode详解

    通过例子来看问题是比较容易懂的. 首先来看,下面这个是我新建的一个txt文件,名字叫做ivan_utf8.txt,然后里面随便编辑了一些东西. 然后来用控制台打开这个文件,同样也是截图: 这里就是简单 ...

  4. java中flush函数作用_Java语言中flush()函数作用及使用方法详解

    最近在学习io流,发现每次都会出现flush()函数,查了一下其作用,起作用主要如下 //------–flush()的作用--------– 笼统且错误的回答: 缓冲区中的数据保存直到缓冲区满后才写 ...

  5. python截图黑屏_对Python获取屏幕截图的4种方法详解

    Python获取电脑截图有多种方式,具体如下: PIL中的ImageGrab模块 windows API PyQt pyautogui PIL中的ImageGrab模块 import time imp ...

  6. python list遍历删除,对python list 遍历删除的正确方法详解

    在遍历list的时候,删除符合条件的数据,可是总是报异常,代码如下: num_list = [1, 2, 3, 4, 5] print(num_list) for i in range(len(num ...

  7. php中魔术方法详解

    〝 古人学问遗无力,少壮功夫老始成 〞php中魔术方法详解,在php中有一类方法,很奇怪常,那就是只要满足一定条件,就会自己执行,那就是php中的魔术方法,码字不易,出精品更难,没有特别幸运,那么请先 ...

  8. python read_excel 参数_对Python 2.7 pandas 中的read_excel详解

    对Python 2.7 pandas 中的read_excel详解 发布时间:2020-08-28 03:32:56 来源:脚本之家 阅读:106 作者:G_66_hero 导入pandas模块: i ...

  9. Python print函数及format()格式化输出详解

    今天继续给大家介绍Python相关知识,本文主要内容是Python print函数及format()格式化输出详解. 一.print()函数基本使用 print()函数是Python中用于向控制台输出 ...

最新文章

  1. 设置PLSQ 连接oracle数据库
  2. 图片的奇怪Cache_MISS原因!
  3. torch cpu版加载权重
  4. java常用的排序算法的思想以及实现
  5. 【Uva 12093】Protecting Zonk
  6. Extjs checkbox 多删除
  7. 【转】关键字过滤算法
  8. ora-24247:网络访问被访问控制列表(ACL)拒绝
  9. 理论 | 三天两夜,万字长文,吃透TCP/IP
  10. 13 Process Lifecycle: Process Creation and Termination
  11. Spring Cloud与微服务学习总结(9)——Spring Cloud面试题汇总
  12. 一般柱子与柱子的距离_建筑中柱子之间的距离多少为好?
  13. 力扣——无重复字符的最长子串
  14. Python collections模块总结
  15. win10 UEFI引导恢复
  16. 向量法计算空间点到线段的距离(python)
  17. C语言打印杨辉三角的多种方法
  18. 浏览器主页进来是hao123
  19. 京东到家订单派发的技术实战
  20. 2022-02-18 Android app 二维码扫描demo,用zxing库,实测ok,记录一下所参考有价值的文章,有生成二维码的demo,但没有亲测。

热门文章

  1. iphone5隐藏功能
  2. CAD常用快捷键——笔记
  3. 晒书有礼!《编写可读代码的艺术》(The Art of Readable Code)晒书有礼活动进行中...
  4. BZOJ 3884: 上帝与集合的正确用法 欧拉降幂
  5. basicdatasource默认_BasicDataSource的配置参数
  6. 解决unresolved symbol _RamfuncsLoadEnd
  7. 注册商标和不注册商标有什么区别?
  8. 怎么求点云的投影面积
  9. APlayer 媒体播放引擎
  10. AttributeError: module ‘asyncio‘ has no attribute ‘run‘