周期由高频率转向低频率称为降采样:例如5分钟股票交易数据转换为日交易数据

相反,周期也可以由低频转向高频称为升采样

其他重采样:例如每周三(W-WED)转换为每周五(W-FRI)

 import pandas as pd
import numpy as np # 创建一个时间戳序列
s = pd.Series(np.random.randn(5),
index=pd.date_range('2016-04-01',periods=5,freq='M'))
# 注意它给的起始时间,与输出的时间对比,
# 它给定的频率为月份输出的月份从每个月的最后一天算起
# 输出
2016-04-30 -0.487238
2016-05-31 0.376708
2016-06-30 -1.830840
2016-07-31 -0.426218
2016-08-31 1.913151
Freq: M, dtype: float64 # 将时间戳的序列转换为时期序列,
s.to_period()
# 输出
2016-04 -0.487238
2016-05 0.376708
2016-06 -1.830840
2016-07 -0.426218
2016-08 1.913151
Freq: M, dtype: float64 # 创建周期频率为天的时间序列
ts = pd.Series(np.random.randn(5),
index=pd.date_range('2016-12-29',periods=5,freq='D'))
# 这个时间序列与第5行的不同,它的频率变以天为单位 # 当转换为时期序列,它的频率也是默认天为单位
ts.to_period() # 与28行的结果相同 pts = ts.to_period(freq='M')
# 把频率变为月时原来的总时间没变只是频率变了它将输出
2016-12 -0.525272
2016-12 -2.610914
2016-12 1.094692
2017-01 -1.721324
2017-01 0.631946
Freq: M, dtype: float64 # 也可以再转为时间戳序列
pts.to_timestamp()
# 输出
2016-12-01 0.797379
2016-12-01 -0.085046
2016-12-01 -0.271226
2017-01-01 1.320668
2017-01-01 0.168546
dtype: float64 pts.to_timestamp(how='end') # 可以输出每月的最后结束时间
# 输出
2016-12-31 23:59:59.999999999 0.797379
2016-12-31 23:59:59.999999999 -0.085046
2016-12-31 23:59:59.999999999 -0.271226
2017-01-31 23:59:59.999999999 1.320668
2017-01-31 23:59:59.999999999 0.168546
dtype: float64 # 创建以周期频率为分的时间序列
ts = pd.Series(np.random.randint(0,50,60),
index=pd.date_range('2016-04-25 09:30',periods=60,freq='T'))
# 通过降采样,降低时间频率
ts.resample('5min',how='sum') # how='sum',表示对降采样的时间段求和
# 输出 它是以时间开始的时候为准,即时间轴的左端
2016-04-25 09:30:00 135
2016-04-25 09:35:00 120
2016-04-25 09:40:00 138
2016-04-25 09:45:00 101
...... ts.resample('5min',how='sum',label='right') # 也可以以末尾时间为准,即时间轴右端
# 输出
2016-04-25 09:35:00 135
2016-04-25 09:40:00 120
2016-04-25 09:45:00 138
2016-04-25 09:50:00 101
...... ts.resample('5min',how='ohlc')
# 它创建了一个DataFrame,以时间为行索引,分别以open、high、low、close
# 为列索引,how='ohlc'就是前面每个列索引的首字母 ts = pd.Series(np.random.randint(0,50,100),
index=pd.date_range('2016-03-01',periods=100,freq='D')) ts.groupby(lambda x: x.month).sum()
# lambda表达式中的x为ts,把ts中的月份进行分组并求每月的总量
ts.groupby(ts.index.to_period('M')).sum() # 与上一行效果相同
 import pandas as pd
import numpy as np df = pd.DataFrame(np.random.randint(1,50,2),
index=pd.date_range('2016-04-22',periods=2,freq='W-FRI'))
# 它的周期频率为星期五 df.resample('D',fill_method='ffill')
# 用升采样的方式,将频率提高的每天,
# fill_method='ffill',表示向上填充值,即所要填充的值与上一行相同 df.resample('D',fill_method='ffill',limit=3)
# limit=3表示最后3行被限制不填入值,默认填NaN df.resample('W-MON',fill_method='ffill')
# 表示以以周一为频率重新采样 df = pd.DataFrame(np.random.randint(2,30,(24,4)),
index=pd.period_range('2015-01','2016-12',freq='M'),
columns=list('ABCD') df.resample('A-DEC',how='sum') # 用年频率重采样 df.resample('A-MAR',how='sum') # 用财年重采样,每年的三月分 pdf = df.resample('A-DEC',how='mean') # 用年频率重采样,算出每年的均值 pdf.resample('Q-DEC',fill_method='ffill') # 将上一行的值再以季度频率重采样

pandas之时间重采样笔记的更多相关文章

  1. pandas之时间数据

    1.时间戳Timestamp() 参数可以为各种形式的时间,Timestamp()会将其转换为时间. time1 = pd.Timestamp('2019/7/13') time2 = pd.Time ...

  2. Mysql实战45讲 06讲全局锁和表锁:给表加个字段怎么有这么多阻碍 极客时间 读书笔记

    Mysql实战45讲 极客时间 读书笔记 Mysql实战45讲 极客时间 读书笔记 笔记体会: 根据加锁范围:MySQL里面的锁可以分为:全局锁.表级锁.行级锁 一.全局锁:对整个数据库实例加锁.My ...

  3. pandas库的学习笔记

    Environment pandas 0.21.0 python 3.6 jupyter notebook 开始 习惯上,我们导入如下: import pandas as pd import nump ...

  4. pandas的resample重采样

    Pandas中的resample,重新采样,是对原样本重新处理的一个方法,是一个对常规时间序列数据重新采样和频率转换的便捷的方法. 降采样:高频数据到低频数据 升采样:低频数据到高频数据 主要函数:r ...

  5. 数据分析之Pandas和Numpy学习笔记(持续更新)<1>

    pandas and numpy notebook        最近工作交接,整理电脑资料时看到了之前的基于Jupyter学习数据分析相关模块学习笔记.想着拿出来分享一下,可是Jupyter导出来h ...

  6. 【pandas】pandas.to_datatime()---时间格式转换

    标准时间格式:2012-12-21 时间转换函数:pandas.to_datatime() # -*- coding: utf- -*- # 生成数据 import pandas as pd data ...

  7. Mysql实战45讲 05讲深入浅出索引(下)极客时间 读书笔记

    极客时间 Mysql实战45讲 04讲深入浅出索引(下)极客时间 笔记体会: 回表:回到主键索引树搜索的过程,称为回表覆盖索引:某索引已经覆盖了查询需求,称为覆盖索引,例如:select ID fro ...

  8. MySQL日期和时间类型笔记

    最近在看<MySQL技术内幕:SQL编程>并做了笔记,这是一篇笔记类型博客,分享出来方便自己复习,也可以帮助其他人 一.日期时间类型所占空间对比 各种日期时间数据类型所占的空间: 类型 所 ...

  9. pandas对时间列分组求diff遇到的问题

    例子: df = pd.DataFrame() df['A'] = [1, 1, 2] df['B'] = [datetime.date(2018, 1, 2), datetime.date(2018 ...

随机推荐

  1. 微软校园招聘  研发工程师A

    1.const A. const int a; B. int const a; a是常数 C. int const *a; D. const int *a; 常量指针,指向一个常量的指针 E. int ...

  2. 在Windows下编译Cef3.2623并加入mp3、mp4支持(附带源码包和最终DLL)《转》

    https://blog.csdn.net/zhuhongshu/article/details/54193842 源码包下载地址:点我下载 最终Dll.Lib.PDB.头文件下载地址(release ...

  3. Unity设计模式+Java设计模式,讲解+案例+PPT,一次性学会设计模式,拥抱高薪!

    一个程序员对设计模式的理解:“不懂”为什么要把很简单的东西搞得那么复杂.后来随着软件开发经验的增加才开始明白我所看到的“复杂”恰恰就是设计模式的精髓所在,我所理解的“简单”就是一把钥匙开一把锁的模式, ...

  4. 课程学习 - 人类疾病导论 | Introduction To Human Disease

    完美人类假设:一类人,具有最完美的基因组,享受最健康的环境和饮食,同时拥有最健康的思想情绪,最终以最长的寿命,自然死亡. 自然死亡是自然生命最终的归宿,这是写在目前基因组里的铁律! 不管科技如何发展, ...

  5. c++ 函数后面加一个冒号的含义

    转载自:https://zhidao.baidu.com/question/2010930169328038188.html 冒号后面跟的是赋值,这种写法是C++的特性. A( int aa, int ...

  6. 项目启动时警告 Establishing SSL connection without server's identity verification is not recommended

    项目启动时控制台提示警告: Tue May 14 23:16:10 CST 2019 WARN: Establishing SSL connection without server's identi ...

  7. linux下如何制作initrd镜像?

    1. 准备文件 加入已经准备好了所有文件在/home/initrd-base目录下 2. 制作initrd镜像 cd /home/initrd-base/ ;find . | cpio --quiet ...

  8. #软件更新#Visual Studio更新到16.3.8

    #软件更新#Visual Studio更新到16.3.8 此次更新包括以下内容:(1)支持Xcode 11.2.(2)修复无法从System.String类型转化的bug.(3)修复UWP开发中,加载 ...

  9. ISO/IEC 9899:2011 条款6.5.6——加法操作符

    6.5.6 加法操作符 语法 1.additive-expression: multiplication-expression additive-expression    +    multipli ...

  10. Python3基础 bool True为1 False为0

             Python : 3.7.3          OS : Ubuntu 18.04.2 LTS         IDE : pycharm-community-2019.1.3    ...