我有大熊猫温度和辐射的时间序列dataframe
.时间分辨率是常规步骤1分钟.
import datetime
import pandas as pd
import numpy as np
date_times = pd.date_range(datetime.datetime(2012, 4, 5, 8, 0),
datetime.datetime(2012, 4, 5, 12, 0),
freq='1min')
tamb = np.random.sample(date_times.size) * 10.0
radiation = np.random.sample(date_times.size) * 10.0
frame = pd.DataFrame(data={'tamb': tamb, 'radiation': radiation},
index=date_times)
frame
<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 241 entries, 2012-04-05 08:00:00 to 2012-04-05 12:00:00
Freq: T
Data columns:
radiation 241 non-null values
tamb 241 non-null values
dtypes: float64(2)
Run Code Online (Sandbox Code Playgroud)
我怎样才能将其下采样dataframe
到一小时的分辨率,计算温度的每小时平均值和辐射的每小时总和?
我正在尝试构建一个用于异常检测的ARIMA.我需要找到时间序列图的移动平均线我试图使用pandas 0.23
import pandas as pd
import numpy as np
from statsmodels.tsa.stattools import adfuller
import matplotlib.pylab as plt
from matplotlib.pylab import rcParams
rcParams['figure.figsize'] = 15, 6
dateparse = lambda dates: pd.datetime.strptime(dates, '%Y-%m')
data = pd.read_csv('AirPassengers.csv', parse_dates=['Month'], index_col='Month',date_parser=dateparse)
data.index
ts = data['#Passengers']
ts.head(10)
plt.plot(ts)
ts_log = np.log(ts)
plt.plot(ts_log)
moving_avg = pd.rolling_mean(ts_log,12) # here is the error
pd.rolling_mean
plt.plot(ts_log)
plt.plot(moving_avg, color='red')
Run Code Online (Sandbox Code Playgroud)
错误:回溯(最近一次调用最后一次):文件"C:\ Program Files\Python36\lastmainprogram.py",第74行,在moving_avg = pd.rolling_mean(ts_log,12)中AttributeError:模块'pandas'没有属性'rolling_mean "
我正在尝试使用基于每周数据的R进行时间序列建模和预测,如下所示:
biz week Amount Count
2006-12-27 973710.7 816570
2007-01-03 4503493.2 3223259
2007-01-10 2593355.9 1659136
2007-01-17 2897670.9 2127792
2007-01-24 3590427.5 2919482
2007-01-31 3761025.7 2981363
2007-02-07 3550213.1 2773988
2007-02-14 3978005.1 3219907
2007-02-21 4020536.0 3027837
2007-02-28 4038007.9 3191570
2007-03-07 3504142.2 2816720
2007-03-14 3427323.1 2703761
...
2014-02-26 99999999.9 1234567
Run Code Online (Sandbox Code Playgroud)
关于我的数据:如上所示,每周都标有一周的第一天(我的周从周三开始,到周二结束).当我构建我的ts
对象时,我尝试了
ts <- ts(df, frequency=52, start=c(2007,1))
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是:
1)有些年份可能有53周,因此frequency=52
这些年不适用;
2)我的开始周/日期是2006-12-27,我该如何设置启动参数?start=c(2006,52)
或者start=c(2007,1)
自2006-12-27周以来真的跨过年界?另外,对于建模,最好是拥有完整的年份数据(比如2007年我的开始年份,如果我只有部分年份的数据),最好不要使用2007,而是从2008年开始?那么2014年:既然还不是完整的一年,我应该使用我的建模吗?无论哪种方式,我仍然有一个问题,是否在2006-12-27这样的年份边界中包括那些周.我应该包括wk 1
2007年还是2006年的最后一周?
3)当我使用ts <- ts(df, frequency=52, start=c(2007,1))
,然后打印出来,我得到了如下图所示的结果,这样反而2007.01,2007.02,2007.52 ...,我得到了2007.000,2007.019,...,它从获取1/52=0.019
.这在数学上是正确的,但不容易解释.有没有办法将它标记为日期本身就像数据框或至少一样2007 wk1, 2007 wk2...
========= …
我有一个csv文件,其中我有2个股票收盘价(每天)
Dates Bajaj_close Hero_close
3/14/2013 1854.8 1669.1
3/15/2013 1850.3 1684.45
3/18/2013 1812.1 1690.5
3/19/2013 1835.9 1645.6
3/20/2013 1840 1651.15
3/21/2013 1755.3 1623.3
3/22/2013 1820.65 1659.6
3/25/2013 1802.5 1617.7
3/26/2013 1801.25 1571.85
3/28/2013 1799.55 1542
Run Code Online (Sandbox Code Playgroud)
我想将上述数据转换为时间序列格式.(开始日期是3/14/2013
和结束日期是3/13/2015
)我试过这个,但它给了我一些奇怪的输出
values <- bajaj_hero[, -1] (excluded first column i.e date in real dataset)
bajaj_hero_timeseries <- ts(values,start=c(2013,1),end=c(2015,3),frequency=365)
Run Code Online (Sandbox Code Playgroud)
输出是:
Bajaj_close Hero_close
2013.000 1854.80 1669.10
2013.003 1850.30 1684.45
2013.005 1812.10 1690.50
2013.008 1835.90 1645.60
2013.011 1840.00 1651.15
2013.014 1755.30 1623.30
2013.016 1820.65 1659.60
2013.019 1802.50 …
Run Code Online (Sandbox Code Playgroud) 我有一个数据集,其中包含12个月内动物的每小时访问次数.我想使用快速傅立叶变换来检查周期性模式和周期性.在过去,我使用Statistica就是为了这个; 但是,我想用R来得到光谱密度与周期的关系图.在R中有一个简单的方法吗?如果可能的话,我想确定12和24小时的活动高峰.
任何人都可以给我一个(pybrain)python中循环神经网络的实例,以预测序列的下一个值吗?(我已经阅读了pybrain文档,我认为没有明确的例子.)我也发现了这个问题.但我没有看到它在更一般的情况下是如何工作的.因此,我在问这里是否有人能够找到一个明确的例子,说明如何使用递归神经网络预测pybrain中序列的下一个值.
举个例子.
比方说,我们有一系列数字在[1,7]范围内.
First run (So first example): 1 2 4 6 2 3 4 5 1 3 5 6 7 1 4 7 1 2 3 5 6
Second run (So second example): 1 2 5 6 2 4 4 5 1 2 5 6 7 1 4 6 1 2 3 3 6
Third run (So third example): 1 3 5 7 2 4 6 7 1 3 5 6 7 1 4 6 …
Run Code Online (Sandbox Code Playgroud) 是否有某种方式使用rollapply(从zoo
包装或类似的东西)优化功能(rollmean
,rollmedian
等)来计算与基于时间窗口的滚动功能,而不是一个基于的若干意见?我想要的很简单:对于不规则时间序列中的每个元素,我想计算一个带有N天窗口的滚动函数.也就是说,窗口应包括当前观察前N天的所有观察结果.时间序列也可能包含重复项.
以下是一个例子.鉴于以下时间序列:
date value
1/11/2011 5
1/11/2011 4
1/11/2011 2
8/11/2011 1
13/11/2011 0
14/11/2011 0
15/11/2011 0
18/11/2011 1
21/11/2011 4
5/12/2011 3
Run Code Online (Sandbox Code Playgroud)
具有5天窗口的滚动中位数(右侧对齐)应导致以下计算:
> c(
median(c(5)),
median(c(5,4)),
median(c(5,4,2)),
median(c(1)),
median(c(1,0)),
median(c(0,0)),
median(c(0,0,0)),
median(c(0,0,0,1)),
median(c(1,4)),
median(c(3))
)
[1] 5.0 4.5 4.0 1.0 0.5 0.0 0.0 0.0 2.5 3.0
Run Code Online (Sandbox Code Playgroud)
我已经找到了一些解决方案,但它们通常很棘手,通常意味着很慢.我设法实现了自己的滚动函数计算.问题是,对于非常长的时间序列,中位数(rollmedian)的优化版本可以产生巨大的时间差,因为它考虑了窗口之间的重叠.我想避免重新实现它.我怀疑rollapply参数有一些技巧可以使它工作,但我无法弄明白.在此先感谢您的帮助.
我做了一些研究,我一直在寻找解决方案.我有一个时间序列数据,非常基本的数据框,让我们称之为x
:
Date Used
11/1/2011 587
11/2/2011 578
11/3/2011 600
11/4/2011 599
11/5/2011 678
11/6/2011 555
11/7/2011 650
11/8/2011 700
11/9/2011 600
11/10/2011 550
11/11/2011 600
11/12/2011 610
11/13/2011 590
11/14/2011 595
11/15/2011 601
11/16/2011 700
11/17/2011 650
11/18/2011 620
11/19/2011 645
11/20/2011 650
11/21/2011 639
11/22/2011 620
11/23/2011 600
11/24/2011 550
11/25/2011 600
11/26/2011 610
11/27/2011 590
11/28/2011 595
11/29/2011 601
11/30/2011 700
12/1/2011 650
12/2/2011 620
12/3/2011 645
12/4/2011 650
12/5/2011 639
12/6/2011 620
12/7/2011 600
12/8/2011 …
Run Code Online (Sandbox Code Playgroud) 我正在寻找一些简单的(即 - 没有数学符号,长形式可重现的代码)filter
R中的函数示例我认为我对卷积方法有所了解,但我坚持推广递归选项.我已阅读并与各种文档作斗争,但帮助对我来说有点不透明.
以下是我到目前为止所发现的例子:
# Set some values for filter components
f1 <- 1; f2 <- 1; f3 <- 1;
Run Code Online (Sandbox Code Playgroud)
我们走了:
# basic convolution filter
filter(1:5,f1,method="convolution")
[1] 1 2 3 4 5
#equivalent to:
x[1] * f1
x[2] * f1
x[3] * f1
x[4] * f1
x[5] * f1
# convolution with 2 coefficients in filter
filter(1:5,c(f1,f2),method="convolution")
[1] 3 5 7 9 NA
#equivalent to:
x[1] * f2 + x[2] * f1
x[2] * f2 + x[3] * …
Run Code Online (Sandbox Code Playgroud)