[Scipy-svn] r2393 - trunk/Lib/sandbox/timeseries
scipy-svn at scipy.org
scipy-svn at scipy.org
Mon Dec 11 13:55:51 EST 2006
Author: mattknox_ca
Date: 2006-12-11 12:55:48 -0600 (Mon, 11 Dec 2006)
New Revision: 2393
Modified:
trunk/Lib/sandbox/timeseries/timeseries.py
Log:
Modified: trunk/Lib/sandbox/timeseries/timeseries.py
===================================================================
--- trunk/Lib/sandbox/timeseries/timeseries.py 2006-12-11 18:54:29 UTC (rev 2392)
+++ trunk/Lib/sandbox/timeseries/timeseries.py 2006-12-11 18:55:48 UTC (rev 2393)
@@ -77,6 +77,20 @@
return "<no data>"
+ def firstValue(self, asDate=False):
+ val = super(TimeSeries, self).firstValue()
+ if asDate:
+ return tsdate.Date(freq=self.freq, val=val)
+ else:
+ return val
+
+ def lastValue(self, asDate=False):
+ val = super(TimeSeries, self).lastValue()
+ if asDate:
+ return tsdate.Date(freq=self.freq, val=val)
+ else:
+ return val
+
### DATA
def __add__(self, other):
@@ -178,6 +192,30 @@
if start.freq != end.freq:
raise ValueError("start and end dates must have same frequency!")
return TimeSeries(numpy.arange(int(start), int(end)+1), dtype=corelib.freqTypeMapping[start.freq], freq=start.freq, observed='END', startIndex=int(start))
+
+def year(dateSer):
+ return __getDateInfo(dateSer,'Y')
+
+def quarter(dateSer):
+ return __getDateInfo(dateSer,'Q')
+
+def month(dateSer):
+ return __getDateInfo(dateSer,'M')
+
+def day(dateSer):
+ return __getDateInfo(dateSer,'D')
+
+def day_of_week(dateSer):
+ return __getDateInfo(dateSer,'W')
+
+def __getDateInfo(dateSer,infoCode):
+ newData = ma.array(cseries.getDateInfo(dateSer.data.filled(), dateSer.dtype.freq, infoCode))
+ newData[dateSer.data.mask] = ma.masked
+ newSer = copy.deepcopy(dateSer)
+ newSer.data = newData
+ newSer.dtype = numpy.int_
+ return newSer
+
def validOpInputs(ser1, ser2):
if isinstance(ser1, TimeSeries) and isinstance(ser2, TimeSeries) and ser1.freq != ser2.freq:
More information about the Scipy-svn
mailing list