QuickStart¶
Instanciation¶
import ticts
ticts.TimeSeries({'2019-01-01': 1, '2019-01-02': 2})
ticts.TimeSeries({'2019-01-01': 1, '2019-01-02': 2}, default=0)
import datetime
dt1 = datetime.datetime(2019, 1, 1)
ticts.TimeSeries({dt1: 1, '2019-01-02': 2})
Samples¶
In [1]: dt1
Out[1]: Timestamp('2019-01-01 00:00:00+0000', tz='UTC')
In [2]: onehour
Out[2]: datetime.timedelta(seconds=3600)
In [3]: smallts
Out[3]:
<TimeSeries>
2019-01-01T01:00:00+00:00: 1,
2019-01-01T03:00:00+00:00: 3,
2019-01-01T06:00:00+00:00: 10,
In [4]: otherts
Out[4]:
<TimeSeries> (default=0)
2019-01-01T02:00:00+00:00: 2,
2019-01-01T03:00:00+00:00: 3,
2019-01-01T05:00:00+00:00: 5,
GetItem¶
An interval is closed left, open right: [ , [
In [5]: smallts.index
Out[5]: SortedKeysView(SortedDict({Timestamp('2019-01-01 01:00:00+0000', tz='UTC'): 1, Timestamp('2019-01-01 03:00:00+0000', tz='UTC'): 3, Timestamp('2019-01-01 06:00:00+0000', tz='UTC'): 10}))
# Accessing value at key
In [6]: smallts[dt1 + onehour]
Out[6]: 1
In [7]: smallts[dt1] # no default set
In [8]: otherts[dt1] # default set
Out[8]: 0
# Accessing values sliced
In [9]: smallts[dt1: dt1 + 5 * onehour] # calls TimeSeries.slice
Out[9]:
<TimeSeries>
2019-01-01T01:00:00+00:00: 1,
2019-01-01T03:00:00+00:00: 3,
# Getting previous is the default
In [10]: key = dt1 + 2 * onehour
In [11]: smallts[key, 'previous'] == smallts[key] == 1
Out[11]: True
# linear interpolation is available
In [12]: smallts[key, 'linear']
Out[12]: 2.0
Set Item, Set Interval¶
Setting a default to your TimeSeries object is mandatory in order to set intervals.
In [13]: ts = TimeSeries(smallts, default=0)
In [14]: ts[dt1 + onehour] = 2
In [15]: print(ts)
<TimeSeries> (default=0)
2019-01-01T01:00:00+00:00: 2,
2019-01-01T03:00:00+00:00: 3,
2019-01-01T06:00:00+00:00: 10,
In [16]: start = dt1 + 4 * onehour
In [17]: end = dt2 + 7 * onehour
In [18]: ts.set_interval(start, end, 7)
In [19]: print(ts)
<TimeSeries> (default=0)
2019-01-01T01:00:00+00:00: 2,
2019-01-01T03:00:00+00:00: 3,
2019-01-01T04:00:00+00:00: 7,
2019-01-02T07:00:00+00:00: 10,
# same as
In [20]: ts[start: end] = 7
In [21]: print(ts)
<TimeSeries> (default=0)
2019-01-01T01:00:00+00:00: 2,
2019-01-01T03:00:00+00:00: 3,
2019-01-01T04:00:00+00:00: 7,
2019-01-02T07:00:00+00:00: 10,
Operations¶
Sum
In [22]: smallts + 10
Out[22]:
<TimeSeries> (default=None)
2019-01-01T01:00:00+00:00: 11,
2019-01-01T03:00:00+00:00: 13,
2019-01-01T06:00:00+00:00: 20,
In [23]: smallts + otherts
Out[23]:
<TimeSeries>
2019-01-01T01:00:00+00:00: 1,
2019-01-01T02:00:00+00:00: 3,
2019-01-01T03:00:00+00:00: 6,
2019-01-01T05:00:00+00:00: 8,
2019-01-01T06:00:00+00:00: 15,
In [24]: sum([smallts, smallts, smallts])
Out[24]:
<TimeSeries>
2019-01-01T01:00:00+00:00: 3,
2019-01-01T03:00:00+00:00: 9,
2019-01-01T06:00:00+00:00: 30,
Sub
In [25]: smallts - otherts
Out[25]:
<TimeSeries>
2019-01-01T01:00:00+00:00: 1,
2019-01-01T02:00:00+00:00: -1,
2019-01-01T03:00:00+00:00: 0,
2019-01-01T05:00:00+00:00: -2,
2019-01-01T06:00:00+00:00: 5,
Comparisons
In [26]: smallts <= 10
Out[26]:
<TimeSeries> (default=None)
2019-01-01T01:00:00+00:00: True,
2019-01-01T03:00:00+00:00: True,
2019-01-01T06:00:00+00:00: True,
In [27]: smallts <= otherts
Out[27]:
<TimeSeries>
2019-01-01T01:00:00+00:00: False,
2019-01-01T02:00:00+00:00: True,
2019-01-01T03:00:00+00:00: True,
2019-01-01T05:00:00+00:00: True,
2019-01-01T06:00:00+00:00: False,
In [28]: smallts < 10
Out[28]:
<TimeSeries> (default=None)
2019-01-01T01:00:00+00:00: True,
2019-01-01T03:00:00+00:00: True,
2019-01-01T06:00:00+00:00: False,
In [29]: smallts < otherts
Out[29]:
<TimeSeries>
2019-01-01T01:00:00+00:00: False,
2019-01-01T02:00:00+00:00: True,
2019-01-01T03:00:00+00:00: False,
2019-01-01T05:00:00+00:00: True,
2019-01-01T06:00:00+00:00: False,
In [30]: smallts >= 10
Out[30]:
<TimeSeries> (default=None)
2019-01-01T01:00:00+00:00: False,
2019-01-01T03:00:00+00:00: False,
2019-01-01T06:00:00+00:00: True,
In [31]: smallts > 10
Out[31]:
<TimeSeries> (default=None)
2019-01-01T01:00:00+00:00: False,
2019-01-01T03:00:00+00:00: False,
2019-01-01T06:00:00+00:00: False,