周期由高频率转向低频率称为降采样:例如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. 2019全国大学生信息安全竞赛ciscn-writeup(4web)

    web1-JustSoso php伪协议获取源码 ?file=php://filter/read=convert.base64-encode/resource=index.php index.php ...

  2. sql查询性能调试,用SET STATISTICS IO和SET STATISTICS TIME---解释比较详细

            一个查询需要的CPU.IO资源越多,查询运行的速度就越慢,因此,描述查询性能调节任务的另一种方式是,应该以一种使用更少的CPU.IO资源的方式重写查询命令,如果能够以这样一种方式完成查 ...

  3. python棱形继承(钻石继承)

    class A(object): def func(self): print('A') class B(A): def func(self): super().func() print('B') cl ...

  4. docker 监控之 cadvisor

    我们可以使用多种方法监控容器的运行情况,比如EFK等,但是我们仍旧需要一个资源利用率监控系统.这个时候,google开发的cadvisor就可以帮上我们的忙了. cadvisor是google创建的用 ...

  5. [Web前端] WEEX、React-Native开发App心得 (转载)

    转自: https://www.jianshu.com/p/139c5074ae5d 2018 JS状态报告: https://2018.stateofjs.com/mobile-and-deskto ...

  6. eclipse如何配置tomcat

    依次点击Window->Show View->Other   找到Server,点击OK,看到控制台旁边已有Server了.   点击server下面的链接,依次选择Apache,根据自己 ...

  7. 在dubbo工程中,使用druid监控

    介绍:在dubbo项目中,使用druid的监控功能 问题:因为,在网上找勒,很多的资料,显示的都是需要在web.xml中配置 <servlet> <servlet-name>D ...

  8. Xamarin图表开发基础教程(1)

    Xamarin图表开发基础教程(1) 在Xamarin图表开发中,最常用的框架是OxyPlot和Microcharts.其中,OxyOPlot提供多种多样的图表类型和丰富的图表功能,可以实现各种复杂的 ...

  9. 小D课堂 - 零基础入门SpringBoot2.X到实战_第9节 SpringBoot2.x整合Redis实战_38、源码编译安装Redis4.x

    笔记 2.源码编译安装Redis4.x     简介:使用源码安装Redis4.x和配置外网访问 1.快速安装  https://redis.io/download#installation      ...

  10. postgresql 大写问题

    postgresql数据库中,表名和字段名一般用小写.如果某个用了大写,请注意,要用双引号进行标识,否则数据库不会识别.