pandas处理时间序列(3):重采样与频率转换
五、重采样与频率转换
1. resample方法
rng = pd.date_range('1/3/2019',periods=1000,freq='D')
rng






2. 降采样
(1)resample将高频率数据聚合到低频率
举例:已知:‘1分钟’数据,想要通过求和的方式将这些数据聚合到“5分钟”块中

left:[0:5)、[5:10)、[10-15)
right :(0:5]、(5:10]、(10-15]
传入的频率将会以“5分钟”的增量定义面元边界。默认情况下,面元的右边界是包含的,因此00:00到00:05的区间中是包含00:05的。传入colsed='left'会让区间以左边界闭合:



最后,你可以希望对结果索引做一些位移,比如从右边界减去一秒以便更容易明白该时间戳到底表示的是哪个区间。通过loffset设置一个字符串或日期片质量即可实现:

(2)通过groupby进行重采样


3. 上采样与插值
将低频率数据转换到高频率,就不需要聚合了

将其重采样到日频率,默认会引入缺失值

如果你想要用前面的周型值填充“非星期三”。resampling的填充和插值方式跟fillna和reindex的一样。

同时,这里可以只填充指定的日期数(目的是限制前面的观察值的持续使用距离)。

注意,新的日期索引完全没必要和旧的相交:

4. 通过日期进行重采样
(1)降采样

annual_frame = frame.resample('A-DEC',how='mean')
annual_frame

(2)上采样
上采样必须要决定在新频率中各区间的哪段用于放置原来的值,就像asfreq方法那样。convention参数默认为'end',可设置为'start':


由于时期指的是时间区间,所以上采样和降采样的规则就比较严格:
- 在降采样中,目标频率必须是源频率的子时期(subperiod);
- 在上采样中,目标频率必须是源频率的超时期(superperiod)
如果不满足这些条件,就会发生异常。这主要影响的是按季、年、周计算的频率。例如,由Q-MAR定义的时间区间只能升采样为A-MAR、A-JUN、A-SEP、A-DEC等。

5. 时间序列绘图
>>> import pandas as pd
Backend TkAgg is interactive backend. Turning interactive mode on.
>>> import numpy as np
>>> from pandas import DataFrame,Series
>>> close_px_all = pd.read_csv('D:\python\DataAnalysis\data\stock_px.csv',parse_dates=True,index_col=0)
>>> close_px = close_px_all[['AAPL','MSFT','XOM']]
>>> close_px = close_px.resample('B').ffill()
>>> close_px
AAPL MSFT XOM
1990-02-01 7.86 0.51 6.12
1990-02-02 8.00 0.51 6.24
1990-02-05 8.18 0.51 6.25
1990-02-06 8.12 0.51 6.23
1990-02-07 7.77 0.51 6.33 ... ... ... 2011-10-12 402.19 26.96 77.16
2011-10-13 408.43 27.18 76.37
2011-10-14 422.00 27.27 78.11 [5662 rows x 3 columns]
close_px['AAPL'].plot()

切片2009年数据,所欲数据都被绘制在subplot上,并且月份和年度都被格式化到X轴上
close_px.ix['2009'].plot()

苹果公司的股价波动,2011年1月到3月
close_px['AAPL'].ix['01-2011':'03-2011'].plot()

appl_q = close_px['AAPL'].resample('Q-DEC').ffill()
appl_q.ix['2009':].plot()

pandas处理时间序列(3):重采样与频率转换的更多相关文章
- pandas处理时间序列(2):DatetimeIndex、索引和选择、含有重复索引的时间序列、日期范围与频率和移位、时间区间和区间算术
一.时间序列基础 1. 时间戳索引DatetimeIndex 生成20个DatetimeIndex from datetime import datetime dates = pd.date_rang ...
- 03. Pandas 2| 时间序列
1.时间模块:datetime datetime模块,主要掌握:datetime.date(), datetime.datetime(), datetime.timedelta() 日期解析方法:pa ...
- Pandas 基础(11) - 用 melt 做格式转换
melt 也可以用来做数据格式转换, 请看下图, 我们可以用 melt 把左表转成右表的格式: 首先引入文件(已上传): df = pd.read_csv('/Users/rachel/Sites/p ...
- pandas之时间序列(data_range)、重采样(resample)、重组时间序列(PeriodIndex)
1.data_range生成时间范围 a) pd.date_range(start=None, end=None, periods=None, freq='D') start和end以及freq配合能 ...
- pandas处理时间序列(1):pd.Timestamp()、pd.Timedelta()、pd.datetime( )、 pd.Period()、pd.to_timestamp()、datetime.strftime()、pd.to_datetime( )、pd.to_period()
Pandas库是处理时间序列的利器,pandas有着强大的日期数据处理功能,可以按日期筛选数据.按日期显示数据.按日期统计数据. pandas的实际类型主要分为: timestamp(时间戳) ...
- pandas处理时间序列(4): 移动窗口函数
六.移动窗口函数 移动窗口和指数加权函数类别如↓: rolling_mean 移动窗口的均值 pandas.rolling_mean(arg, window, min_periods=None, fr ...
- pandas之时间序列
Pandas中提供了许多用来处理时间格式文本的方法,包括按不同方法生成一个时间序列,修改时间的格式,重采样等等. 按不同的方法生成时间序列 In [7]: import pandas as pd # ...
- pandas 之 时间序列索引
import numpy as np import pandas as pd 引入 A basic kind of time series object in pandas is a Series i ...
- pandas之时间序列笔记
时间戳tiimestamp:固定的时刻->pd.Timestamp 固定时期period:比如2016年3月份,再如2015年销售额->pd.Period 时间间隔interval:由起始 ...
随机推荐
- Jmeter性能测试之分布式(五)
Jmeter是纯Java开发的开源性能测试工具, Java程序是很吃内存的, 有时候一台负载机给服务器的压力是不够的, 需要很多台同时负载, 这个时候就需要用到分布式了. 1. 组网图大概就是这样的 ...
- [转]sourcetree 安装-Windows
https://blog.csdn.net/weialemon/article/details/78833419 sourcetree官网地址:https://www.sourcetreeapp.co ...
- net core体系-web应用程序-4asp.net core2.0 项目实战(1)-10项目各种全局帮助类
本文目录 1. 前沿2.CacheHelper基于Microsoft.Extensions.Caching.Memory封装3.XmlHelper快速操作xml文档4.SerializationHe ...
- php接入支付宝的流程(转载)
php接入支付宝的流程写在这里供像我一样的小白参考. 1.首先要有一个创建一个应用(选好自己想要的功能,关于支付的功能,貌似都需要签约) 2.下载SDK&Dome(网址https://doc. ...
- IMCASH:看着朋友赚钱进币圈 我凭啥亏钱? 4月29日币圈报告
即将过去的四月份,币圈的行情总体是不错的,比特从4000附近最高涨到了5600以上的位置,当前也在5200左右,而成交量更是创出历史天量(4月3日,全球加密货币市场的交易量达890亿美元,创历史天量) ...
- 下面为初学者分享一下SQL 数据库学习资料
一.基础 1.说明:创建数据库CREATE DATABASE database-name2.说明:删除数据库drop database dbname3.说明:备份sql server--- 创建 备份 ...
- C# 堆栈(Stack)和队列(Queue)
一.什么是堆?(Heap) 堆是无序的,是一片不连续的内存域,由用户自己来控制和释放,如果用户自己不释放的话,当内存达到一定的特定值时,通过垃圾回收器(GC)来回收. 是程序运行期 ...
- yum clear all无反应
卸载重装yum 操作系统版本:centos7 [root@linux-node3 ~]# uname -r 3.10.0-514.el7.x86_64 一.将现有的yum源卸载 [root@linux ...
- Hadoop Yarn 框架原理及运作机制及与MapReduce比较
Hadoop 和 MRv1 简单介绍 Hadoop 集群可从单一节点(其中所有 Hadoop 实体都在同一个节点上运行)扩展到数千个节点(其中的功能分散在各个节点之间,以增加并行处理活动).图 1 演 ...
- __x__(26)0907第四天__文档流_网页最底层
文档流 处在网页的最底层,表示的是一个页面中的位置. 创建的元素,默认都处于文档流中. 元素在文档流中的特点 块元素 在文档流中独占一行. 自上而下排列. 宽度默认占父元素的 100%,width=& ...