python中resample函数实现重采样和降采样代码

 更新时间:2020年02月25日 09:01:28   作者:sorrythanku  
今天小编就为大家分享一篇python中resample函数实现重采样和降采样代码,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

函数原型

resample(self, rule, how=None, axis=0, fill_method=None, closed=None, label=None, convention=‘start', kind=None, loffset=None, limit=None, base=0, on=None, level=None)

比较关键的是rule,closed,label下面会随着两个用法说明

降采样

对时间数据细粒度增大,可以把每天的数据聚合成一周,可以求和或者均值的方式进行聚合

下面给出列子

times=pd.date_range('20180101',periods=30)
ts=pd.Series(np.arange(1,31),index=times)
ts
2018-01-01   1
2018-01-02   2
2018-01-03   3
2018-01-04   4
2018-01-05   5
2018-01-06   6
2018-01-07   7
2018-01-08   8
2018-01-09   9
2018-01-10  10
2018-01-11  11
2018-01-12  12
2018-01-13  13
2018-01-14  14
2018-01-15  15
2018-01-16  16
2018-01-17  17
2018-01-18  18
2018-01-19  19
2018-01-20  20
2018-01-21  21
2018-01-22  22
2018-01-23  23
2018-01-24  24
2018-01-25  25
2018-01-26  26
2018-01-27  27
2018-01-28  28
2018-01-29  29
2018-01-30  30
Freq: D, dtype: int32
ts_7d=ts.resample('7D').sum()
ts_7d
2018-01-01   28
2018-01-08   77
2018-01-15  126
2018-01-22  175
2018-01-29   59
dtype: int32

我们看看上面代码,就是先给出一个1-30号的series,l然后聚合成左闭右开的5个区间[1,8),[8,15),[15,22),[22-29),[29-5(下个月)),每个区间的值就为单个区间值之和。由于29号往后只有29号和30号有值,所以只有两个值

下面我们看看label和closed的功能

ts_7d=ts.resample('7D',closed='right',label='left').sum()
ts_7d

Out[14]:
2017-12-25   1
2018-01-01   35
2018-01-08   84
2018-01-15  133
2018-01-22  182
2018-01-29   30

上面的代码,将closed改为了right,区间就变成了左开右闭,那么如果从区间还是(1,8],1就取不到,所以往前取,就是(25,1],(1,8],(8,15],(15,22],(22,29],(29,5]这6个区间

ts_7d=ts.resample('7D',closed='right',label='right').sum()
ts_7d

Out[15]:
2018-01-01   1
2018-01-08   35
2018-01-15   84
2018-01-22  133
2018-01-29  182
2018-02-05   30
dtype: int32

上面的代码就可以看出label=right就是指label等于右区间的值,如果label=left就是指label等于左区间的值

重采样

降低时间的细粒度,对于重采样,主要是涉及到值的填充。有下面的三种填充方法

不填充。那么对应无值的地方,用NaN代替。对应的方法是asfreq。

用前值填充。用前面的值填充无值的地方。对应的方法是ffill或者pad。

用后值填充。对应的方法是bfill,b代表back。

下面给出代码看一下

ts_7h_asfreq = ts.resample('7H').asfreq()
print(ts_7h_asfreq)

ts_7h_ffill = ts.resample('7H').ffill()
print(ts_7h_ffill)

ts_7h_bfill = ts.resample('7H').bfill()
ts_7h_bfill


2018-01-01 00:00:00  1.0
2018-01-01 07:00:00  NaN
2018-01-01 14:00:00  NaN
2018-01-01 21:00:00  NaN
Freq: 7H, dtype: float64
2018-01-01 00:00:00  1
2018-01-01 07:00:00  1
2018-01-01 14:00:00  1
2018-01-01 21:00:00  1
Freq: 7H, dtype: int32
Out[24]:
2018-01-01 00:00:00  1
2018-01-01 07:00:00  2
2018-01-01 14:00:00  2
2018-01-01 21:00:00  2
Freq: 7H, dtype: int32

总结

重采样和降采样一般用在时间序列里面,合理的使用降低时间维度或者降低时间细粒度多可以成为好的特征。

以上这篇python中resample函数实现重采样和降采样代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Python实现名片管理系统

    Python实现名片管理系统

    这篇文章主要为大家详细介绍了Python实现名片管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-02-02
  • 一行代码实现Python动态加载依赖

    一行代码实现Python动态加载依赖

    本文主要介绍了Python动态加载依赖,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-12-12
  • Python中检查字符串是否仅包含字母的方法详解

    Python中检查字符串是否仅包含字母的方法详解

    这篇文章主要为大家详细介绍了Python中的多种方法来检查字符串是否只由字母组成,以及它们的应用场景和优劣,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-11-11
  • python 删除excel表格重复行,数据预处理操作

    python 删除excel表格重复行,数据预处理操作

    这篇文章主要介绍了python 删除excel表格重复行,数据预处理操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-07-07
  • 详解Python中sorted()和sort()的使用与区别

    详解Python中sorted()和sort()的使用与区别

    众所周知,在Python中常用的排序函数为sorted()和sort()。本文将详细介绍sorted()和sort()方法的代码示例,并解释两者之间的区别,感兴趣的可以了解一下
    2022-03-03
  • Selenium向iframe富文本框输入内容过程图解

    Selenium向iframe富文本框输入内容过程图解

    这篇文章主要介绍了Selenium向iframe富文本框输入内容过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • Python中Collection的使用小技巧

    Python中Collection的使用小技巧

    这篇文章主要介绍了Python中Collection的使用小技巧,对初学者来说有不错的学习借鉴价值,需要的朋友可以参考下
    2014-08-08
  • 全面解析Python的While循环语句的使用方法

    全面解析Python的While循环语句的使用方法

    这篇文章主要介绍了全面解析Python的While循环语句的使用方法,是Python入门学习中的基础知识,需要的朋友可以参考下
    2015-10-10
  • YOLOv5改进之添加CBAM注意力机制的方法

    YOLOv5改进之添加CBAM注意力机制的方法

    注意力机制最先被用在NLP领域,Attention就是为了让模型认识到数据中哪一部分是最重要的,为它分配更大的权重,获得更多的注意力在一些特征上,让模型表现更好,这篇文章主要给大家介绍了关于YOLOv5改进之添加CBAM注意力机制的相关资料,需要的朋友可以参考下
    2022-11-11
  • python实现图像识别功能

    python实现图像识别功能

    这篇文章主要为大家详细介绍了python实现图像识别功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01

最新评论