[ ]:
import timeatlas as ta import numpy as np
In this guide, we present you some examples where TimeAtlas can be used.
[4]:
values = np.random.randn(100) values.ravel()[np.random.choice(values.size, 10, replace=False)] = np.nan ts1 = ta.TimeSeries.create('2019-03-01', '2019-06-08', freq='1D') ts1 = ts1.fill(values) values = np.random.randn(60) values.ravel()[np.random.choice(values.size, 10, replace=False)] = np.nan ts2 = ta.TimeSeries.create('2020-03-01', '2020-04-29', freq='1D') ts2 = ts2.fill(values)
There the possibility of padding the TimeSeries. It will pad it with np.nan until the given timestamp
[33]:
ts2_padded = ts2.pad(limit='2019-06-08') ts2_padded
values 2019-06-08 NaN 2019-06-09 NaN 2019-06-10 NaN 2019-06-11 NaN 2019-06-12 NaN ... ... 2020-04-25 0.596698 2020-04-26 -0.549478 2020-04-27 -0.062611 2020-04-28 0.979095 2020-04-29 -1.150297 [327 rows x 1 columns]
It might also be adventitious to remove the np.nan from the left, right or both sides of the TimeSeries.
[34]:
ts_trimmed = ts2_padded.trim(side='both') ts_trimmed
values 2020-03-01 1.297396 2020-03-02 -0.026979 2020-03-03 2.525833 2020-03-04 -0.907044 2020-03-05 2.251274 2020-03-06 0.773656 2020-03-07 NaN 2020-03-08 0.127736 2020-03-09 0.210494 2020-03-10 0.394397 2020-03-11 NaN 2020-03-12 -0.837164 2020-03-13 1.359918 2020-03-14 0.606832 2020-03-15 0.129245 2020-03-16 -0.796973 2020-03-17 NaN 2020-03-18 0.103552 2020-03-19 -0.047688 2020-03-20 -0.932393 2020-03-21 -0.540284 2020-03-22 -0.468820 2020-03-23 NaN 2020-03-24 0.584597 2020-03-25 0.825047 2020-03-26 0.669108 2020-03-27 NaN 2020-03-28 0.811758 2020-03-29 -0.971524 2020-03-30 -1.625764 2020-03-31 0.478373 2020-04-01 0.266248 2020-04-02 -0.120767 2020-04-03 -1.209642 2020-04-04 -0.564476 2020-04-05 0.231693 2020-04-06 0.316299 2020-04-07 NaN 2020-04-08 -0.783829 2020-04-09 -0.571719 2020-04-10 -0.102494 2020-04-11 0.492242 2020-04-12 NaN 2020-04-13 NaN 2020-04-14 -0.175210 2020-04-15 NaN 2020-04-16 -0.239909 2020-04-17 -1.302179 2020-04-18 -2.026889 2020-04-19 -0.359681 2020-04-20 0.959360 2020-04-21 0.210031 2020-04-22 -0.536432 2020-04-23 0.030768 2020-04-24 NaN 2020-04-25 0.596698 2020-04-26 -0.549478 2020-04-27 -0.062611 2020-04-28 0.979095 2020-04-29 -1.150297
Merge two TimeSeries is as easy as baking carrot cake.
[35]:
ts_merged = ts_trimmed.merge(ts1)
TimeAtlas (v0.1.1) is not yet taking care of the duplicate indices. This feature might follow in later versions.
[36]:
ts_merged
values 2019-03-01 1.496622 2019-03-02 -1.143969 2019-03-03 NaN 2019-03-04 NaN 2019-03-05 -0.196187 ... ... 2020-04-25 0.596698 2020-04-26 -0.549478 2020-04-27 -0.062611 2020-04-28 0.979095 2020-04-29 -1.150297 [160 rows x 1 columns]
[65]:
values = np.random.randn(366 * 24) values.ravel()[np.random.choice(values.size, 70, replace=False)] = np.nan ts3 = ta.TimeSeries.create("2020-01-01", "2020-12-31 23:00:00", freq="H") ts3 = ts3.fill(values)
[66]:
ts3
values 2020-01-01 00:00:00 -0.874376 2020-01-01 01:00:00 -0.537712 2020-01-01 02:00:00 -1.487388 2020-01-01 03:00:00 -0.689474 2020-01-01 04:00:00 0.148005 ... ... 2020-12-31 19:00:00 -0.071308 2020-12-31 20:00:00 0.280191 2020-12-31 21:00:00 -0.378189 2020-12-31 22:00:00 -1.072594 2020-12-31 23:00:00 -0.275559 [8784 rows x 1 columns]
[67]:
ts3_resample = ts3.resample(freq="1D")
[68]:
ts3_resample
values 2020-01-01 -0.874376 2020-01-02 -0.418154 2020-01-03 -1.213908 2020-01-04 -0.555403 2020-01-05 -0.630505 ... ... 2020-12-27 1.149431 2020-12-28 1.452904 2020-12-29 0.439203 2020-12-30 0.126455 2020-12-31 1.178389 [366 rows x 1 columns]
Simple statists are included.
[70]:
ts3_resample.describe()
count 363.000000 mean -0.019161 std 0.995951 min -2.777850 25% -0.738260 50% -0.038589 75% 0.751444 max 2.111992 Name: values, dtype: float64