pandas之时间重采样笔记
周期由高频率转向低频率称为降采样:例如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之时间重采样笔记的更多相关文章
- pandas之时间数据
1.时间戳Timestamp() 参数可以为各种形式的时间,Timestamp()会将其转换为时间. time1 = pd.Timestamp('2019/7/13') time2 = pd.Time ...
- Mysql实战45讲 06讲全局锁和表锁:给表加个字段怎么有这么多阻碍 极客时间 读书笔记
Mysql实战45讲 极客时间 读书笔记 Mysql实战45讲 极客时间 读书笔记 笔记体会: 根据加锁范围:MySQL里面的锁可以分为:全局锁.表级锁.行级锁 一.全局锁:对整个数据库实例加锁.My ...
- pandas库的学习笔记
Environment pandas 0.21.0 python 3.6 jupyter notebook 开始 习惯上,我们导入如下: import pandas as pd import nump ...
- pandas的resample重采样
Pandas中的resample,重新采样,是对原样本重新处理的一个方法,是一个对常规时间序列数据重新采样和频率转换的便捷的方法. 降采样:高频数据到低频数据 升采样:低频数据到高频数据 主要函数:r ...
- 数据分析之Pandas和Numpy学习笔记(持续更新)<1>
pandas and numpy notebook 最近工作交接,整理电脑资料时看到了之前的基于Jupyter学习数据分析相关模块学习笔记.想着拿出来分享一下,可是Jupyter导出来h ...
- 【pandas】pandas.to_datatime()---时间格式转换
标准时间格式:2012-12-21 时间转换函数:pandas.to_datatime() # -*- coding: utf- -*- # 生成数据 import pandas as pd data ...
- Mysql实战45讲 05讲深入浅出索引(下)极客时间 读书笔记
极客时间 Mysql实战45讲 04讲深入浅出索引(下)极客时间 笔记体会: 回表:回到主键索引树搜索的过程,称为回表覆盖索引:某索引已经覆盖了查询需求,称为覆盖索引,例如:select ID fro ...
- MySQL日期和时间类型笔记
最近在看<MySQL技术内幕:SQL编程>并做了笔记,这是一篇笔记类型博客,分享出来方便自己复习,也可以帮助其他人 一.日期时间类型所占空间对比 各种日期时间数据类型所占的空间: 类型 所 ...
- pandas对时间列分组求diff遇到的问题
例子: df = pd.DataFrame() df['A'] = [1, 1, 2] df['B'] = [datetime.date(2018, 1, 2), datetime.date(2018 ...
随机推荐
- Oracle语法 及 SQL题目(二)
目录 课例复制 思考题四 解题思路 思考题五 解题思路 课例复制 思考题四 最近,经过你的努力,你得到了一份工作,成为了百货公司的一位经理. 到位后,你发现你的销售数据库中有两张表,一个是商店促销时间 ...
- 脸型分类-Face shape classification using Inception v3
本文链接:https://blog.csdn.net/u011961856/article/details/77984667函数解析github 代码:https://github.com/adoni ...
- 【转】分享一款颜色神器ColorSchemer Studio
原文:https://www.cnblogs.com/xyfll7/p/7569078.html ColorSchemer Studio是一款专业配色软件,网页设计或平面设计师必备工具,和ColorP ...
- MYSQL双主模式,触发器(trigger)不可见问题
MYSQL版本信息: Your MySQL connection id is 71851 Server version: 5.7.24-log MySQL Community Server (GPL) ...
- 【转载】 KL距离(相对熵)
原文地址: https://www.cnblogs.com/nlpowen/p/3620470.html ----------------------------------------------- ...
- Spring cloud微服务安全实战-3-6API安全机制之数据校验
校验:非空.唯一性等校验 密码的加密:密码加密来存储. 如何做https的访问 校验 一个层面是接口层面,另外一个层面是数据库层面. Springboot给我们提供了简单的封装 校验的包里面还有其他的 ...
- matlab基本数据结构struct
一起来学演化计算-matlab基本数据结构struct 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考文献 http://blog.sina.com.cn/s/blog_46865140 ...
- Error:java: Compilation failed: internal java compiler
errorInformation:java: javacTask: 源发行版 1.8 需要目标发行版 1.8 解决此类问题 检查自己的JDK是否一致 1 setting--------built ...
- CSS3 column 分栏
column的布局形式还没有使用过,后续的bug和解决方案有待检验. column column-count:number: 设置内容分为多少栏显示 column-width:长度单位:设置每一栏的 ...
- Tools - Summary List
通用 PicPick:https://picpick.app/zh/ Q-Dir:http://www.softwareok.com/?Download=Q-Dir 7-Zip:https://www ...