美文网首页
时间序列分析

时间序列分析

作者: 六六的建斌 | 来源:发表于2017-07-22 11:16 被阅读0次

昨天睡了一天,是头晕的那种,然后也没心思来做笔记,没心思来看书,其实,我知道,或许我现在做的只是在转移一种矛盾,可是我还是想剑走偏锋,渴望能够渡过陈仓。我现在是知道霸王为何要自刭了,虽然江东弟子多才俊,卷土重来未可知,可是他那可骄傲的心该往哪里安放呢,为赢天下,生死都是小事。惟楚有才啊。。。我的南楚湘中啊。。。


算了,今天弄时间序列,时间一天天的过去了,自己是在是没有学到什么东西,可能还是量的积累过程吧,总会有质变的,只要自己坚持下去。我一直想进入实操阶段,可是每每一开始,就发现自己的基础不牢固,然后反而浪费了很多时间。


from datetime import datetime

datetime(2014, 12, 15, 17, 30)              datetime.now()获取现在的时间

datetime.date(datetime(2014, 12, 15))    可以创建时间 用函数

datetime.now().date()       获取日期

datetime.time(datetime(2014, 12, 15, 17, 30))    datetime.now().time()   获取时间

Timestamp objects       时间戳  应该叫这个吧   里面有引号

pd.Timestamp('2014-12-15') 

pd.Timestamp('17:30')      返回当前时间  

Timedelta    两个时间之间的差

Datetime Index


将格式不同的序列转换为时间索引,值得注意的是pd.to_datetime()函数默人返回的是Numpy数组,如果他有不能解析的时间戳的时候。所以一般情况下以防万一,加一个coerce=True参数放在后面

pd.to_datetime(['Aug 1, 2014', 'foo'], coerce=True)
pd.date_range()   function.这个函数可以方便的创建连续的时间索引

periods = pd.date_range('8/1/2014', periods=10)

date_series = pd.Series(np.random.randn(10), index=periods)

subset = date_series[3:7]
s2 = pd.Series([10, 100, 1000, 10000], subset.index)  他山之石,可以攻玉 

date_series['2014-08-05':'2014-08-07']

s3 = pd.Series(0, pd.date_range('2013-01-01', '2014-12-31'))

Creating time-series data with specific frequencies  用特别的周期创建时间序列

在pd.date_range()里面加上参数freq=‘’就可以打

pd.date_range('2014-08-01 12:10:01', freq='S', periods=10)  按秒递增

Calculating new dates using offsets     按偏移量计算时间


还有一些内建的参数 可以使用

d = datetime(2014, 8, 29)

do = pd.Date Offset(days = 1)

d + do       得到8月30

from pandas.tseries.offsets import *

d + Business Day()       d + 2 * Business Day()       得先导入模块才能用

BMonth End().rollforward(datetime(2014, 9, 15))    滚动到本月月末的那天

d - Week(weekday = 1)  得到的是d的上个周二

固定的偏移量,例子如下


上面有每个字母的含义,但还是没懂结果的意思,尤其是月份那个参数

Representing durations of time using Period objects  呈现时间区间用

aug2014 = pd.Period('2014-08', freq='M')

mp2013 = pd.period_range('1/1/2013', '12/31/2013', freq='M')

for p in mp2013:

print ("{0} {1}".format(p.start_time, p.end_time))

ps = pd.Series(np.random.randn(24),pd.period_range('1/1/2013','12/31/2014', freq='M'))

Handling holidays using calendars   处理假期用日历

from pandas.tseries.holiday import *  导入模块

cal = USFederal Holiday Calendar()    初始化函数

for d in cal.holidays(start='2014-01-01', end='2014-12-31'):

         print (d)

cbd = CustomBusinessDay(holidays=cal.holidays())

datetime(2014, 8, 29) + cbd

Shifting and lagging

np.random.seed(123456)

ts = Series([1, 2, 2.5, 1.5, 0.5],

pd.date_range('2014-08-01', periods=5))

ts.shift(1)    值 向前偏移一天

ts.shift(-2)    从后向前偏移

ts / ts.shift(1)          ts.shift(1, freq="B")      ts.tshift(5, freq="H")
 
ts.shift(1, Date Offset(minutes=0.5))          ts.tshift(-1, freq='H')

daily = hourly.asfreq('D')      daily.asfreq('H')      daily.asfreq('H', method='ffill')
daily.asfreq('H', method='bfill')

first_minute = walk['2014-08-01 00:00']

first_minute.plot()

plt.legend(labels=['Rolling Mean', 'Raw']);

   mean_abs_dev = lambda x: np.fabs(x - x.mean()).mean()

  pd.rolling_apply(h1w, 5, mean_abs_dev).plot();

相关文章

  • 2020 时序分析随笔

    多元时间序列分析 通过分析序列自身的变化规律,构建时间序列模型 一元时间序列分析方法 多元时间序列分析 在 198...

  • 时序分析平稳性分析

    时间序列分析 时间序列分析分为平稳时间序列分析和随机过程 时间序列的定义 按时间排序的一组随机数变量,可以用数学语...

  • 数据分析之时间序列分析

    时间序列分析 顾名思义,时间序列就是按照时间顺利排列的一组数据序列。时间序列分析就是发现这组数据的变动规律并用于预...

  • 时间序列分析

    时间序列简介 时间序列分析是数据分析过程中,尤其是在金融数据分析过程中会经常遇到的。时间序列,就是以时间排序的一组...

  • 时间序列分析

    趋势,平稳时间序列模型,非平稳时间序列模型,模型识别,模型估计,参数估计,模型诊断,预测,季节模型,时间序...

  • 时间序列分析

    昨天睡了一天,是头晕的那种,然后也没心思来做笔记,没心思来看书,其实,我知道,或许我现在做的只是在转移一种矛盾,可...

  • 时间序列分析

    1.三种基本模式 1.1 平稳性 / 随机性(Stationarity): 当数据没有明显的模式特征的话,我们认为...

  • 时间序列分析

    时序图 在R中生成时间序列的前提是我们将分析对象转成时间序列函数对象,包括观测值、起始时间、种植时间、及周期(月、...

  • 时间序列分析

    基础定义 1、方差:在统计描述中,方差用来计算每一个变量(观察值)与总体均数之间的差异。为避免出现离均差总和为零,...

  • 时间序列分析

    本文的主题是关于时间序列建立ARIMA模型的相关理论解释以及运用Python进行实际建模的详细过程。 1.自回归模...

网友评论

      本文标题:时间序列分析

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