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 ...
随机推荐
- #C++初学记录(算法测试2019/5/5)(深度搜索)
深度搜索:Oil Deposits GeoSurvComp地质调查公司负责探测地下石油储藏. GeoSurvComp现在在一块矩形区域探测石油,并把这个大区域分成了很多小块.他们通过专业设备,来分析每 ...
- ADO.NET五大对象增删改查使用
string ConnStr = "Data Source=.;Initial Catalog=ADO_DEMO;Integrated Security=True"; #regio ...
- NGUI: Next-Gen UI 2018.3.0f
https://assetstore.unity.com/packages/tools/gui/ngui-next-gen-ui-2413 NGUI is a very powerful UI sys ...
- [XLua]热更新四部曲视频教程+示例源码
基于Unity2017 xLua是由腾讯维护的一个开源项目,xLua为Unity. .Net. Mono等C#环境增加Lua脚本编程的能力,借助xLua,这些Lua代码可以方便的和C#相互调用.自20 ...
- 第十二章 Python文件操作【转】
12.1 open() open()函数作用是打开文件,返回一个文件对象. 用法格式:open(name[, mode[, buffering[,encoding]]]) -> file obj ...
- 【Java.Regex】用正则表达式查找Java文件里的字符串
代码: import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; imp ...
- C#利用反射获取实体类的主键名称或者获取实体类的值
//获取主键的 PropertyInfo PropertyInfo pkProp = ).FirstOrDefault(); //主键名称 var keyName=pkProp.Name; //实体类 ...
- ISO/IEC 9899:2011 条款6.7.4——函数说明符
6.7.4 函数说明符 语法 1.function-specifier: inline _Noreturn 约束 2.函数说明符应该只能被用在对一个函数标识符的声明中. 3.对一个含有外部连接函数的内 ...
- ISO/IEC 9899:2011 条款6.5.6——加法操作符
6.5.6 加法操作符 语法 1.additive-expression: multiplication-expression additive-expression + multipli ...
- 009-Spring Boot全局配置跨域请求支持
1.Spring Boot 2.0以前全局配置跨域主要是继承WebMvcConfigurerAdapter @Configuration public class CorsConfig extends ...