周期由高频率转向低频率称为降采样:例如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. [Linux] RTC 读写指令及测试程序

    CPU:RK3288 系统:Linux IC:hym8563 在 Linux 系统中,指令 date 和 hwclock 都可以读写时间 date:读写系统时间,写时间需要管理员权限 hwclock: ...

  2. 深度学习面试题21:批量归一化(Batch Normalization,BN)

    目录 BN的由来 BN的作用 BN的操作阶段 BN的操作流程 BN可以防止梯度消失吗 为什么归一化后还要放缩和平移 BN在GoogLeNet中的应用 参考资料 BN的由来 BN是由Google于201 ...

  3. 手写HashMap实践

    1.什么是HashMap 2.源码分析 3.手写实现 4.不足 一.什么是HashMap hash散列 将一个任意长度通过某种算法(hash函数算法)换成一个固定值 map: 地图x,y 存储 总结: ...

  4. MQTT教學(二):安裝MQTT伺服器Mosquitto,Windows系統篇

    http://swf.com.tw/?p=1005 「認識MQTT」文章提到,MQTT的訊息全都透過稱為代理人(broker)的伺服器交流.本文將說明頗受歡迎的開放原始碼MQTT伺服器Mosquitt ...

  5. AndoridSQLite数据库开发基础教程(10)

    AndoridSQLite数据库开发基础教程(10) 添加触发器 触发器(TRIGGER)是由事件来触发某个操作.这些事件包括INSERT.DELETE.UPDATE和UPDATE OF.当数据库系统 ...

  6. nginx: [warn] conflicting server name "aaa.bbbb.com" on 0.0.0.0:80, ignored

    date: 2019-08-12  16:52:44 author: headsen chen notice :个人原创 故障现象: openresty -t nginx: [warn] confli ...

  7. Python脚本实现Linux/MAC中Xmind Zen去水印等其他功能的过程(V0.1)

    说明本脚本仅作为学习使用,请勿用于任何商业用途.本文为原创,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接和本声明.功能简介 去除软件右上角激活按钮 去除导出时激活弹窗 去除导出PDF文 ...

  8. 【转载】 卷积神经网络(Convolutional Neural Network,CNN)

    作者:wuliytTaotao 出处:https://www.cnblogs.com/wuliytTaotao/ 本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可,欢迎 ...

  9. [Scikit-learn] 1.4 Support Vector Regression

    SVM算法 既可用于回归问题,比如SVR(Support Vector Regression,支持向量回归) 也可以用于分类问题,比如SVC(Support Vector Classification ...

  10. [转]jkeyll的安装步骤

    链接地址:https://nxjniexiao.github.io/2018/08/17/jkeyll-install/