美文网首页程序员
python对时间序列的处理

python对时间序列的处理

作者: 何同尘 | 来源:发表于2019-01-30 22:47 被阅读10次

简单介绍python处理时间。

基础python处理时间与日期

python基本的处理时间对象是datetime模块和dateutil模块。

from datetime import datetime
datetime(year=2015, month=7, day=4)

直接解析字符串

from dateutil import parser
date = parser.parse("4th of July, 2015")
date

numpy 的时间数组类型 datetime64

import numpy as np
date = np.array('2015-07-04', dtype=np.datetime64)
date
np.datetime64('2015-07-04')

快速创建数组:

date + np.arange(12)

np可以解析各种时间字符串格式,也可以指定解析类容。

Code Meaning Time span (relative) Time span (absolute)
Y Year ± 9.2e18 years [9.2e18 BC, 9.2e18 AD]
M Month ± 7.6e17 years [7.6e17 BC, 7.6e17 AD]
W Week ± 1.7e17 years [1.7e17 BC, 1.7e17 AD]
D Day ± 2.5e16 years [2.5e16 BC, 2.5e16 AD]
h Hour ± 1.0e15 years [1.0e15 BC, 1.0e15 AD]
m Minute ± 1.7e13 years [1.7e13 BC, 1.7e13 AD]
s Second ± 2.9e12 years [ 2.9e9 BC, 2.9e9 AD]
ms Millisecond ± 2.9e9 years [ 2.9e6 BC, 2.9e6 AD]
us Microsecond ± 2.9e6 years [290301 BC, 294241 AD]
ns Nanosecond ± 292 years [ 1678 AD, 2262 AD]
ps Picosecond ± 106 days [ 1969 AD, 1970 AD]
fs Femtosecond ± 2.6 hours [ 1969 AD, 1970 AD]
as Attosecond ± 9.2 seconds [ 1969 AD, 1970 AD]

np.datetime64('2015-07-04 12:59:59.50', 'ns')

pandas处理时间两全其美的办法

pandas中提供了timestamp对象,本质上是将基础的datetime和dateutil实现了numpy.datetime64的接口。

import pandas as pd
date = pd.to_datetime("4th of July, 2015")
date

解析到天
date + pd.to_timedelta(np.arange(12), 'D')

pandas中的时间索引

用时间来做索引是处理数据中常见的操作。

index = pd.DatetimeIndex(['2014-07-04', '2014-08-04',
'2015-07-04', '2015-08-04'])
data = pd.Series([0, 1, 2, 3], index=index)

python中的时间结构

  • 对于时间戳,panda提供时间戳类型。如前所述,它本质上是Python原生datetime的替代品,但它基于更高效的numpy。datetime64数据类型。关联的索引结构是DatetimeIndex。
  • 对于时间段,panda提供了时间段类型。这将编码一个基于numpy.datetime64的固定频率间隔。关联的索引结构是PeriodIndex。
  • 对于时间增量或持续时间,panda提供了时间增量类型。Timedelta是Python原生datetime的更有效替代品。类型,并基于numpy .timedelta64。关联的索引结构是TimedeltaIndex。
  1. 时间戳:
    dates = pd.to_datetime([datetime(2015, 7, 3), '4th of July, 2015',
    '2015-Jul-6', '07-07-2015', '20150708'])
    dates

  2. 时间段 :
    dates.to_period('D')

  3. 时间增量:
    dates - dates[0]

pd.date_range()产生时间数组

pd.date_range('2015-07-03', '2015-07-10')
pd.period_range('2015-07', periods=8, freq='M')
pd.timedelta_range(0, periods=10, freq='H')

重采样 移动 窗口滚动

from pandas_datareader import data
goog = data.DataReader('GOOG', start='2004', end='2016',
data_source='google')
goog.head()

时间重采样:
reshape() asfreq()

移动预测:
shift() tshift()``=time-shift
shift用来移动日期。tshift()移动索引。

滚动窗口:
滚动窗口滚动统计是ppython实现的第三种特定于时间序列的操作。这可以通过Series和DataFrame对象的rolling()属性来实现,该属性返回一个与groupby操作类似的视图(参见聚合和分组)。默认情况下,这个滚动视图提供了许多聚合操作。随着时间变化变化的统计指标。
rolling()

可以获得一些聚合操作的对象
rolling.mean()
rolling.std()

相关文章

  • python对时间序列的处理

    简单介绍python处理时间。 基础python处理时间与日期 python基本的处理时间对象是datetime模...

  • python库-时间处理模块

    python的时间处理模块主要有time,datetime,calendar几个模块,对时间的处理,python已...

  • Python玩转金融时间序列之ARCH与GARCH模型

    01 引言 作为金融时间序列的专题推文,【手把手教你】时间序列之日期处理主要介绍了使用Python处理时间序列的日...

  • Pandas 处理时间戳索引

    1、对时间序列的处理: 2、pandas 的 Timestamp 方法生成时间戳: 3、pandas 的 to_d...

  • 用Python玩转时序数据

    摘要: 本文简要介绍了如何从零开始使用Python中的时间序列。这包括对时间序列的简单定义,以及对利用pandas...

  • 序列构成的数组

    Time: 2019-08-02书籍: 《流畅的Python》 数据火车:文本,列表,表格。 Python处理序列...

  • python 对时间处理

    转格式通常都是str 跟datetime之间转换,int跟datetime的转换,要先进行int跟str之间转换。...

  • 【手把手教你】Python处理金融数据

    时间序列分析之日期处理 datetime处理日期 python常用的处理时间的库有:datetime,time,c...

  • python 时间序列处理

    数据说明:’./data/raw/pm25.csv’文件为某地2017年一段时间内的PM2.5的每小时监测数据,数...

  • Pandas里的日期转字符串

    Pandas对时间序列的处理可以说是功能繁多,但感觉找遍了度娘,也没有发现一个能把日期处理成“2017-11”这样...

网友评论

    本文标题:python对时间序列的处理

    本文链接:https://www.haomeiwen.com/subject/yirhsqtx.html