├── .gitignore
├── 01. Datetime Index.ipynb
├── 02. Time Resampling.ipynb
├── 03. Time Shifting.ipynb
├── 04. Rolling and Expanding.ipynb
├── 05. Bollinger Bands.ipynb
├── 06. Timezone.ipynb
├── 07. Visualizing Time Series Data.ipynb
├── 08. ETS Decomposition.ipynb
├── 09. Forecasting Models.ipynb
├── 10. ARIMA and Seasonal ARIMA.ipynb
├── 11. ARIMA and Rolling Forecast.ipynb
├── LICENSE
├── README.md
├── data
├── airline_passengers.csv
├── apple_stock.csv
├── monthly-milk-production.csv
└── sales-of-shampoo.csv
└── environment.yml
/.gitignore:
--------------------------------------------------------------------------------
1 | # Byte-compiled / optimized / DLL files
2 | __pycache__/
3 | *.py[cod]
4 | *$py.class
5 |
6 | # C extensions
7 | *.so
8 |
9 | # Distribution / packaging
10 | .Python
11 | build/
12 | develop-eggs/
13 | dist/
14 | downloads/
15 | eggs/
16 | .eggs/
17 | lib/
18 | lib64/
19 | parts/
20 | sdist/
21 | var/
22 | wheels/
23 | *.egg-info/
24 | .installed.cfg
25 | *.egg
26 | MANIFEST
27 |
28 | # PyInstaller
29 | # Usually these files are written by a python script from a template
30 | # before PyInstaller builds the exe, so as to inject date/other infos into it.
31 | *.manifest
32 | *.spec
33 |
34 | # Installer logs
35 | pip-log.txt
36 | pip-delete-this-directory.txt
37 |
38 | # Unit test / coverage reports
39 | htmlcov/
40 | .tox/
41 | .coverage
42 | .coverage.*
43 | .cache
44 | nosetests.xml
45 | coverage.xml
46 | *.cover
47 | .hypothesis/
48 | .pytest_cache/
49 |
50 | # Translations
51 | *.mo
52 | *.pot
53 |
54 | # Django stuff:
55 | *.log
56 | local_settings.py
57 | db.sqlite3
58 |
59 | # Flask stuff:
60 | instance/
61 | .webassets-cache
62 |
63 | # Scrapy stuff:
64 | .scrapy
65 |
66 | # Sphinx documentation
67 | docs/_build/
68 |
69 | # PyBuilder
70 | target/
71 |
72 | # Jupyter Notebook
73 | .ipynb_checkpoints
74 |
75 | # pyenv
76 | .python-version
77 |
78 | # celery beat schedule file
79 | celerybeat-schedule
80 |
81 | # SageMath parsed files
82 | *.sage.py
83 |
84 | # Environments
85 | .env
86 | .venv
87 | env/
88 | venv/
89 | ENV/
90 | env.bak/
91 | venv.bak/
92 |
93 | # Spyder project settings
94 | .spyderproject
95 | .spyproject
96 |
97 | # Rope project settings
98 | .ropeproject
99 |
100 | # mkdocs documentation
101 | /site
102 |
103 | # mypy
104 | .mypy_cache/
105 |
--------------------------------------------------------------------------------
/01. Datetime Index.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "markdown",
5 | "metadata": {},
6 | "source": [
7 | "# Datetime Index"
8 | ]
9 | },
10 | {
11 | "cell_type": "code",
12 | "execution_count": 1,
13 | "metadata": {},
14 | "outputs": [],
15 | "source": [
16 | "import numpy as np\n",
17 | "import pandas as pd\n",
18 | "import matplotlib.pyplot as plt"
19 | ]
20 | },
21 | {
22 | "cell_type": "code",
23 | "execution_count": 2,
24 | "metadata": {},
25 | "outputs": [],
26 | "source": [
27 | "from datetime import datetime"
28 | ]
29 | },
30 | {
31 | "cell_type": "code",
32 | "execution_count": 3,
33 | "metadata": {},
34 | "outputs": [],
35 | "source": [
36 | "# 2019년 1월 24일\n",
37 | "today = datetime(2019,1,24)"
38 | ]
39 | },
40 | {
41 | "cell_type": "code",
42 | "execution_count": 4,
43 | "metadata": {},
44 | "outputs": [
45 | {
46 | "data": {
47 | "text/plain": [
48 | "datetime.datetime(2019, 1, 24, 0, 0)"
49 | ]
50 | },
51 | "execution_count": 4,
52 | "metadata": {},
53 | "output_type": "execute_result"
54 | }
55 | ],
56 | "source": [
57 | "# 0시, 0분 디폴트값\n",
58 | "today"
59 | ]
60 | },
61 | {
62 | "cell_type": "code",
63 | "execution_count": 5,
64 | "metadata": {},
65 | "outputs": [],
66 | "source": [
67 | "# 시,분,초 지정\n",
68 | "today = datetime(2019,1,24,13,39)"
69 | ]
70 | },
71 | {
72 | "cell_type": "code",
73 | "execution_count": 6,
74 | "metadata": {},
75 | "outputs": [
76 | {
77 | "data": {
78 | "text/plain": [
79 | "datetime.datetime(2019, 1, 24, 13, 39)"
80 | ]
81 | },
82 | "execution_count": 6,
83 | "metadata": {},
84 | "output_type": "execute_result"
85 | }
86 | ],
87 | "source": [
88 | "today"
89 | ]
90 | },
91 | {
92 | "cell_type": "code",
93 | "execution_count": 7,
94 | "metadata": {},
95 | "outputs": [
96 | {
97 | "data": {
98 | "text/plain": [
99 | "24"
100 | ]
101 | },
102 | "execution_count": 7,
103 | "metadata": {},
104 | "output_type": "execute_result"
105 | }
106 | ],
107 | "source": [
108 | "today.day"
109 | ]
110 | },
111 | {
112 | "cell_type": "code",
113 | "execution_count": 8,
114 | "metadata": {},
115 | "outputs": [
116 | {
117 | "data": {
118 | "text/plain": [
119 | "13"
120 | ]
121 | },
122 | "execution_count": 8,
123 | "metadata": {},
124 | "output_type": "execute_result"
125 | }
126 | ],
127 | "source": [
128 | "today.hour"
129 | ]
130 | },
131 | {
132 | "cell_type": "markdown",
133 | "metadata": {},
134 | "source": [
135 | "### Pandas with Datetime Index"
136 | ]
137 | },
138 | {
139 | "cell_type": "code",
140 | "execution_count": 9,
141 | "metadata": {},
142 | "outputs": [],
143 | "source": [
144 | "# datetime 객체로 list 생성 예시\n",
145 | "dates = [datetime(2019,1,23), datetime(2019,1,24)]"
146 | ]
147 | },
148 | {
149 | "cell_type": "code",
150 | "execution_count": 10,
151 | "metadata": {},
152 | "outputs": [
153 | {
154 | "data": {
155 | "text/plain": [
156 | "DatetimeIndex(['2019-01-23', '2019-01-24'], dtype='datetime64[ns]', freq=None)"
157 | ]
158 | },
159 | "execution_count": 10,
160 | "metadata": {},
161 | "output_type": "execute_result"
162 | }
163 | ],
164 | "source": [
165 | "# 인덱스 전환\n",
166 | "dt_index = pd.DatetimeIndex(dates)\n",
167 | "dt_index"
168 | ]
169 | },
170 | {
171 | "cell_type": "code",
172 | "execution_count": 11,
173 | "metadata": {},
174 | "outputs": [],
175 | "source": [
176 | "# 랜덤 데이터를 생성하고 인덱스와 함께 DataFrame 만들기\n",
177 | "data = np.random.randn(2,2)\n",
178 | "cols = ['A','B']\n",
179 | "df = pd.DataFrame(data=data, index=dt_index, columns=cols)"
180 | ]
181 | },
182 | {
183 | "cell_type": "code",
184 | "execution_count": 12,
185 | "metadata": {},
186 | "outputs": [
187 | {
188 | "data": {
189 | "text/html": [
190 | "
\n",
191 | "\n",
204 | "
\n",
205 | " \n",
206 | " \n",
207 | " | \n",
208 | " A | \n",
209 | " B | \n",
210 | "
\n",
211 | " \n",
212 | " \n",
213 | " \n",
214 | " 2019-01-23 | \n",
215 | " -1.093658 | \n",
216 | " 0.300429 | \n",
217 | "
\n",
218 | " \n",
219 | " 2019-01-24 | \n",
220 | " 1.217856 | \n",
221 | " 0.792852 | \n",
222 | "
\n",
223 | " \n",
224 | "
\n",
225 | "
"
226 | ],
227 | "text/plain": [
228 | " A B\n",
229 | "2019-01-23 -1.093658 0.300429\n",
230 | "2019-01-24 1.217856 0.792852"
231 | ]
232 | },
233 | "execution_count": 12,
234 | "metadata": {},
235 | "output_type": "execute_result"
236 | }
237 | ],
238 | "source": [
239 | "df"
240 | ]
241 | },
242 | {
243 | "cell_type": "code",
244 | "execution_count": 13,
245 | "metadata": {},
246 | "outputs": [
247 | {
248 | "data": {
249 | "text/plain": [
250 | "DatetimeIndex(['2019-01-23', '2019-01-24'], dtype='datetime64[ns]', freq=None)"
251 | ]
252 | },
253 | "execution_count": 13,
254 | "metadata": {},
255 | "output_type": "execute_result"
256 | }
257 | ],
258 | "source": [
259 | "df.index"
260 | ]
261 | },
262 | {
263 | "cell_type": "code",
264 | "execution_count": 14,
265 | "metadata": {},
266 | "outputs": [
267 | {
268 | "data": {
269 | "text/plain": [
270 | "1"
271 | ]
272 | },
273 | "execution_count": 14,
274 | "metadata": {},
275 | "output_type": "execute_result"
276 | }
277 | ],
278 | "source": [
279 | "# Latest Date Location\n",
280 | "df.index.argmax()"
281 | ]
282 | },
283 | {
284 | "cell_type": "code",
285 | "execution_count": 15,
286 | "metadata": {},
287 | "outputs": [
288 | {
289 | "data": {
290 | "text/plain": [
291 | "Timestamp('2019-01-24 00:00:00')"
292 | ]
293 | },
294 | "execution_count": 15,
295 | "metadata": {},
296 | "output_type": "execute_result"
297 | }
298 | ],
299 | "source": [
300 | "df.index.max()"
301 | ]
302 | },
303 | {
304 | "cell_type": "code",
305 | "execution_count": 16,
306 | "metadata": {},
307 | "outputs": [
308 | {
309 | "data": {
310 | "text/plain": [
311 | "0"
312 | ]
313 | },
314 | "execution_count": 16,
315 | "metadata": {},
316 | "output_type": "execute_result"
317 | }
318 | ],
319 | "source": [
320 | "# Earliest Date Location\n",
321 | "df.index.argmin()"
322 | ]
323 | },
324 | {
325 | "cell_type": "code",
326 | "execution_count": 17,
327 | "metadata": {},
328 | "outputs": [
329 | {
330 | "data": {
331 | "text/plain": [
332 | "Timestamp('2019-01-23 00:00:00')"
333 | ]
334 | },
335 | "execution_count": 17,
336 | "metadata": {},
337 | "output_type": "execute_result"
338 | }
339 | ],
340 | "source": [
341 | "df.index.min()"
342 | ]
343 | }
344 | ],
345 | "metadata": {
346 | "kernelspec": {
347 | "display_name": "tsa",
348 | "language": "python",
349 | "name": "tsa"
350 | },
351 | "language_info": {
352 | "codemirror_mode": {
353 | "name": "ipython",
354 | "version": 3
355 | },
356 | "file_extension": ".py",
357 | "mimetype": "text/x-python",
358 | "name": "python",
359 | "nbconvert_exporter": "python",
360 | "pygments_lexer": "ipython3",
361 | "version": "3.7.2"
362 | }
363 | },
364 | "nbformat": 4,
365 | "nbformat_minor": 2
366 | }
367 |
--------------------------------------------------------------------------------
/03. Time Shifting.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "markdown",
5 | "metadata": {},
6 | "source": [
7 | "# Time Shifting\n",
8 | "때때로 시계열 데이터의 인덱스에 따라 데이터를 일정한 간격으로 이동시켜야 할 경우가 있습니다. 그렇게 time shifting 된 데이터를 lagged 데이터라고 하는데, 시계열 데이터 분석 알고리즘 대부분은 이러한 lagged 데이터를 필요로 합니다. pandas 에는 이를 지원하는 함수들이 있어 편리하게 사용할 수 있습니다."
9 | ]
10 | },
11 | {
12 | "cell_type": "code",
13 | "execution_count": 1,
14 | "metadata": {},
15 | "outputs": [],
16 | "source": [
17 | "import pandas as pd\n",
18 | "\n",
19 | "import matplotlib.pyplot as plt\n",
20 | "%matplotlib inline"
21 | ]
22 | },
23 | {
24 | "cell_type": "code",
25 | "execution_count": 2,
26 | "metadata": {},
27 | "outputs": [],
28 | "source": [
29 | "# csv 를 읽을 때부터 Date 칼럼을 인덱스로 지정\n",
30 | "df = pd.read_csv('data/apple_stock.csv', index_col='Date')"
31 | ]
32 | },
33 | {
34 | "cell_type": "code",
35 | "execution_count": 3,
36 | "metadata": {},
37 | "outputs": [
38 | {
39 | "data": {
40 | "text/plain": [
41 | "Index(['2009-12-31', '2010-01-04', '2010-01-05', '2010-01-06', '2010-01-07',\n",
42 | " '2010-01-08', '2010-01-11', '2010-01-12', '2010-01-13', '2010-01-14',\n",
43 | " ...\n",
44 | " '2018-12-17', '2018-12-18', '2018-12-19', '2018-12-20', '2018-12-21',\n",
45 | " '2018-12-24', '2018-12-26', '2018-12-27', '2018-12-28', '2018-12-31'],\n",
46 | " dtype='object', name='Date', length=2265)"
47 | ]
48 | },
49 | "execution_count": 3,
50 | "metadata": {},
51 | "output_type": "execute_result"
52 | }
53 | ],
54 | "source": [
55 | "df.index"
56 | ]
57 | },
58 | {
59 | "cell_type": "code",
60 | "execution_count": 4,
61 | "metadata": {},
62 | "outputs": [
63 | {
64 | "name": "stdout",
65 | "output_type": "stream",
66 | "text": [
67 | "\n",
68 | "Index: 2265 entries, 2009-12-31 to 2018-12-31\n",
69 | "Data columns (total 6 columns):\n",
70 | "High 2265 non-null float64\n",
71 | "Low 2265 non-null float64\n",
72 | "Open 2265 non-null float64\n",
73 | "Close 2265 non-null float64\n",
74 | "Volume 2265 non-null float64\n",
75 | "Adj Close 2265 non-null float64\n",
76 | "dtypes: float64(6)\n",
77 | "memory usage: 123.9+ KB\n"
78 | ]
79 | }
80 | ],
81 | "source": [
82 | "df.info()"
83 | ]
84 | },
85 | {
86 | "cell_type": "markdown",
87 | "metadata": {},
88 | "source": [
89 | "인덱스가 object 타입이므로 datetime 형으로 변환합니다."
90 | ]
91 | },
92 | {
93 | "cell_type": "code",
94 | "execution_count": 5,
95 | "metadata": {},
96 | "outputs": [],
97 | "source": [
98 | "df.index = pd.to_datetime(df.index)"
99 | ]
100 | },
101 | {
102 | "cell_type": "code",
103 | "execution_count": 6,
104 | "metadata": {},
105 | "outputs": [
106 | {
107 | "data": {
108 | "text/plain": [
109 | "DatetimeIndex(['2009-12-31', '2010-01-04', '2010-01-05', '2010-01-06',\n",
110 | " '2010-01-07', '2010-01-08', '2010-01-11', '2010-01-12',\n",
111 | " '2010-01-13', '2010-01-14',\n",
112 | " ...\n",
113 | " '2018-12-17', '2018-12-18', '2018-12-19', '2018-12-20',\n",
114 | " '2018-12-21', '2018-12-24', '2018-12-26', '2018-12-27',\n",
115 | " '2018-12-28', '2018-12-31'],\n",
116 | " dtype='datetime64[ns]', name='Date', length=2265, freq=None)"
117 | ]
118 | },
119 | "execution_count": 6,
120 | "metadata": {},
121 | "output_type": "execute_result"
122 | }
123 | ],
124 | "source": [
125 | "df.index"
126 | ]
127 | },
128 | {
129 | "cell_type": "code",
130 | "execution_count": 7,
131 | "metadata": {},
132 | "outputs": [
133 | {
134 | "name": "stdout",
135 | "output_type": "stream",
136 | "text": [
137 | "\n",
138 | "DatetimeIndex: 2265 entries, 2009-12-31 to 2018-12-31\n",
139 | "Data columns (total 6 columns):\n",
140 | "High 2265 non-null float64\n",
141 | "Low 2265 non-null float64\n",
142 | "Open 2265 non-null float64\n",
143 | "Close 2265 non-null float64\n",
144 | "Volume 2265 non-null float64\n",
145 | "Adj Close 2265 non-null float64\n",
146 | "dtypes: float64(6)\n",
147 | "memory usage: 123.9 KB\n"
148 | ]
149 | }
150 | ],
151 | "source": [
152 | "df.info()"
153 | ]
154 | },
155 | {
156 | "cell_type": "code",
157 | "execution_count": 8,
158 | "metadata": {},
159 | "outputs": [
160 | {
161 | "data": {
162 | "text/html": [
163 | "\n",
164 | "\n",
177 | "
\n",
178 | " \n",
179 | " \n",
180 | " | \n",
181 | " High | \n",
182 | " Low | \n",
183 | " Open | \n",
184 | " Close | \n",
185 | " Volume | \n",
186 | " Adj Close | \n",
187 | "
\n",
188 | " \n",
189 | " Date | \n",
190 | " | \n",
191 | " | \n",
192 | " | \n",
193 | " | \n",
194 | " | \n",
195 | " | \n",
196 | "
\n",
197 | " \n",
198 | " \n",
199 | " \n",
200 | " 2009-12-31 | \n",
201 | " 30.478571 | \n",
202 | " 30.080000 | \n",
203 | " 30.447144 | \n",
204 | " 30.104286 | \n",
205 | " 88102700.0 | \n",
206 | " 20.159719 | \n",
207 | "
\n",
208 | " \n",
209 | " 2010-01-04 | \n",
210 | " 30.642857 | \n",
211 | " 30.340000 | \n",
212 | " 30.490000 | \n",
213 | " 30.572857 | \n",
214 | " 123432400.0 | \n",
215 | " 20.473503 | \n",
216 | "
\n",
217 | " \n",
218 | " 2010-01-05 | \n",
219 | " 30.798571 | \n",
220 | " 30.464285 | \n",
221 | " 30.657143 | \n",
222 | " 30.625713 | \n",
223 | " 150476200.0 | \n",
224 | " 20.508902 | \n",
225 | "
\n",
226 | " \n",
227 | " 2010-01-06 | \n",
228 | " 30.747143 | \n",
229 | " 30.107143 | \n",
230 | " 30.625713 | \n",
231 | " 30.138571 | \n",
232 | " 138040000.0 | \n",
233 | " 20.182680 | \n",
234 | "
\n",
235 | " \n",
236 | " 2010-01-07 | \n",
237 | " 30.285715 | \n",
238 | " 29.864286 | \n",
239 | " 30.250000 | \n",
240 | " 30.082857 | \n",
241 | " 119282800.0 | \n",
242 | " 20.145369 | \n",
243 | "
\n",
244 | " \n",
245 | "
\n",
246 | "
"
247 | ],
248 | "text/plain": [
249 | " High Low Open Close Volume Adj Close\n",
250 | "Date \n",
251 | "2009-12-31 30.478571 30.080000 30.447144 30.104286 88102700.0 20.159719\n",
252 | "2010-01-04 30.642857 30.340000 30.490000 30.572857 123432400.0 20.473503\n",
253 | "2010-01-05 30.798571 30.464285 30.657143 30.625713 150476200.0 20.508902\n",
254 | "2010-01-06 30.747143 30.107143 30.625713 30.138571 138040000.0 20.182680\n",
255 | "2010-01-07 30.285715 29.864286 30.250000 30.082857 119282800.0 20.145369"
256 | ]
257 | },
258 | "execution_count": 8,
259 | "metadata": {},
260 | "output_type": "execute_result"
261 | }
262 | ],
263 | "source": [
264 | "df.head()"
265 | ]
266 | },
267 | {
268 | "cell_type": "code",
269 | "execution_count": 9,
270 | "metadata": {},
271 | "outputs": [
272 | {
273 | "data": {
274 | "text/html": [
275 | "\n",
276 | "\n",
289 | "
\n",
290 | " \n",
291 | " \n",
292 | " | \n",
293 | " High | \n",
294 | " Low | \n",
295 | " Open | \n",
296 | " Close | \n",
297 | " Volume | \n",
298 | " Adj Close | \n",
299 | "
\n",
300 | " \n",
301 | " Date | \n",
302 | " | \n",
303 | " | \n",
304 | " | \n",
305 | " | \n",
306 | " | \n",
307 | " | \n",
308 | "
\n",
309 | " \n",
310 | " \n",
311 | " \n",
312 | " 2018-12-24 | \n",
313 | " 151.550003 | \n",
314 | " 146.589996 | \n",
315 | " 148.149994 | \n",
316 | " 146.830002 | \n",
317 | " 37169200.0 | \n",
318 | " 146.830002 | \n",
319 | "
\n",
320 | " \n",
321 | " 2018-12-26 | \n",
322 | " 157.229996 | \n",
323 | " 146.720001 | \n",
324 | " 148.300003 | \n",
325 | " 157.169998 | \n",
326 | " 58582500.0 | \n",
327 | " 157.169998 | \n",
328 | "
\n",
329 | " \n",
330 | " 2018-12-27 | \n",
331 | " 156.770004 | \n",
332 | " 150.070007 | \n",
333 | " 155.839996 | \n",
334 | " 156.149994 | \n",
335 | " 53117100.0 | \n",
336 | " 156.149994 | \n",
337 | "
\n",
338 | " \n",
339 | " 2018-12-28 | \n",
340 | " 158.520004 | \n",
341 | " 154.550003 | \n",
342 | " 157.500000 | \n",
343 | " 156.229996 | \n",
344 | " 42291400.0 | \n",
345 | " 156.229996 | \n",
346 | "
\n",
347 | " \n",
348 | " 2018-12-31 | \n",
349 | " 159.360001 | \n",
350 | " 156.479996 | \n",
351 | " 158.529999 | \n",
352 | " 157.740005 | \n",
353 | " 35003500.0 | \n",
354 | " 157.740005 | \n",
355 | "
\n",
356 | " \n",
357 | "
\n",
358 | "
"
359 | ],
360 | "text/plain": [
361 | " High Low Open Close Volume \\\n",
362 | "Date \n",
363 | "2018-12-24 151.550003 146.589996 148.149994 146.830002 37169200.0 \n",
364 | "2018-12-26 157.229996 146.720001 148.300003 157.169998 58582500.0 \n",
365 | "2018-12-27 156.770004 150.070007 155.839996 156.149994 53117100.0 \n",
366 | "2018-12-28 158.520004 154.550003 157.500000 156.229996 42291400.0 \n",
367 | "2018-12-31 159.360001 156.479996 158.529999 157.740005 35003500.0 \n",
368 | "\n",
369 | " Adj Close \n",
370 | "Date \n",
371 | "2018-12-24 146.830002 \n",
372 | "2018-12-26 157.169998 \n",
373 | "2018-12-27 156.149994 \n",
374 | "2018-12-28 156.229996 \n",
375 | "2018-12-31 157.740005 "
376 | ]
377 | },
378 | "execution_count": 9,
379 | "metadata": {},
380 | "output_type": "execute_result"
381 | }
382 | ],
383 | "source": [
384 | "df.tail()"
385 | ]
386 | },
387 | {
388 | "cell_type": "markdown",
389 | "metadata": {},
390 | "source": [
391 | "## shift forward"
392 | ]
393 | },
394 | {
395 | "cell_type": "code",
396 | "execution_count": 10,
397 | "metadata": {},
398 | "outputs": [
399 | {
400 | "data": {
401 | "text/html": [
402 | "\n",
403 | "\n",
416 | "
\n",
417 | " \n",
418 | " \n",
419 | " | \n",
420 | " High | \n",
421 | " Low | \n",
422 | " Open | \n",
423 | " Close | \n",
424 | " Volume | \n",
425 | " Adj Close | \n",
426 | "
\n",
427 | " \n",
428 | " Date | \n",
429 | " | \n",
430 | " | \n",
431 | " | \n",
432 | " | \n",
433 | " | \n",
434 | " | \n",
435 | "
\n",
436 | " \n",
437 | " \n",
438 | " \n",
439 | " 2009-12-31 | \n",
440 | " NaN | \n",
441 | " NaN | \n",
442 | " NaN | \n",
443 | " NaN | \n",
444 | " NaN | \n",
445 | " NaN | \n",
446 | "
\n",
447 | " \n",
448 | " 2010-01-04 | \n",
449 | " 30.478571 | \n",
450 | " 30.080000 | \n",
451 | " 30.447144 | \n",
452 | " 30.104286 | \n",
453 | " 88102700.0 | \n",
454 | " 20.159719 | \n",
455 | "
\n",
456 | " \n",
457 | " 2010-01-05 | \n",
458 | " 30.642857 | \n",
459 | " 30.340000 | \n",
460 | " 30.490000 | \n",
461 | " 30.572857 | \n",
462 | " 123432400.0 | \n",
463 | " 20.473503 | \n",
464 | "
\n",
465 | " \n",
466 | " 2010-01-06 | \n",
467 | " 30.798571 | \n",
468 | " 30.464285 | \n",
469 | " 30.657143 | \n",
470 | " 30.625713 | \n",
471 | " 150476200.0 | \n",
472 | " 20.508902 | \n",
473 | "
\n",
474 | " \n",
475 | " 2010-01-07 | \n",
476 | " 30.747143 | \n",
477 | " 30.107143 | \n",
478 | " 30.625713 | \n",
479 | " 30.138571 | \n",
480 | " 138040000.0 | \n",
481 | " 20.182680 | \n",
482 | "
\n",
483 | " \n",
484 | "
\n",
485 | "
"
486 | ],
487 | "text/plain": [
488 | " High Low Open Close Volume Adj Close\n",
489 | "Date \n",
490 | "2009-12-31 NaN NaN NaN NaN NaN NaN\n",
491 | "2010-01-04 30.478571 30.080000 30.447144 30.104286 88102700.0 20.159719\n",
492 | "2010-01-05 30.642857 30.340000 30.490000 30.572857 123432400.0 20.473503\n",
493 | "2010-01-06 30.798571 30.464285 30.657143 30.625713 150476200.0 20.508902\n",
494 | "2010-01-07 30.747143 30.107143 30.625713 30.138571 138040000.0 20.182680"
495 | ]
496 | },
497 | "execution_count": 10,
498 | "metadata": {},
499 | "output_type": "execute_result"
500 | }
501 | ],
502 | "source": [
503 | "df.shift(1).head()"
504 | ]
505 | },
506 | {
507 | "cell_type": "code",
508 | "execution_count": 11,
509 | "metadata": {},
510 | "outputs": [
511 | {
512 | "data": {
513 | "text/html": [
514 | "\n",
515 | "\n",
528 | "
\n",
529 | " \n",
530 | " \n",
531 | " | \n",
532 | " High | \n",
533 | " Low | \n",
534 | " Open | \n",
535 | " Close | \n",
536 | " Volume | \n",
537 | " Adj Close | \n",
538 | "
\n",
539 | " \n",
540 | " Date | \n",
541 | " | \n",
542 | " | \n",
543 | " | \n",
544 | " | \n",
545 | " | \n",
546 | " | \n",
547 | "
\n",
548 | " \n",
549 | " \n",
550 | " \n",
551 | " 2018-12-24 | \n",
552 | " 158.160004 | \n",
553 | " 149.630005 | \n",
554 | " 156.860001 | \n",
555 | " 150.729996 | \n",
556 | " 95744600.0 | \n",
557 | " 150.729996 | \n",
558 | "
\n",
559 | " \n",
560 | " 2018-12-26 | \n",
561 | " 151.550003 | \n",
562 | " 146.589996 | \n",
563 | " 148.149994 | \n",
564 | " 146.830002 | \n",
565 | " 37169200.0 | \n",
566 | " 146.830002 | \n",
567 | "
\n",
568 | " \n",
569 | " 2018-12-27 | \n",
570 | " 157.229996 | \n",
571 | " 146.720001 | \n",
572 | " 148.300003 | \n",
573 | " 157.169998 | \n",
574 | " 58582500.0 | \n",
575 | " 157.169998 | \n",
576 | "
\n",
577 | " \n",
578 | " 2018-12-28 | \n",
579 | " 156.770004 | \n",
580 | " 150.070007 | \n",
581 | " 155.839996 | \n",
582 | " 156.149994 | \n",
583 | " 53117100.0 | \n",
584 | " 156.149994 | \n",
585 | "
\n",
586 | " \n",
587 | " 2018-12-31 | \n",
588 | " 158.520004 | \n",
589 | " 154.550003 | \n",
590 | " 157.500000 | \n",
591 | " 156.229996 | \n",
592 | " 42291400.0 | \n",
593 | " 156.229996 | \n",
594 | "
\n",
595 | " \n",
596 | "
\n",
597 | "
"
598 | ],
599 | "text/plain": [
600 | " High Low Open Close Volume \\\n",
601 | "Date \n",
602 | "2018-12-24 158.160004 149.630005 156.860001 150.729996 95744600.0 \n",
603 | "2018-12-26 151.550003 146.589996 148.149994 146.830002 37169200.0 \n",
604 | "2018-12-27 157.229996 146.720001 148.300003 157.169998 58582500.0 \n",
605 | "2018-12-28 156.770004 150.070007 155.839996 156.149994 53117100.0 \n",
606 | "2018-12-31 158.520004 154.550003 157.500000 156.229996 42291400.0 \n",
607 | "\n",
608 | " Adj Close \n",
609 | "Date \n",
610 | "2018-12-24 150.729996 \n",
611 | "2018-12-26 146.830002 \n",
612 | "2018-12-27 157.169998 \n",
613 | "2018-12-28 156.149994 \n",
614 | "2018-12-31 156.229996 "
615 | ]
616 | },
617 | "execution_count": 11,
618 | "metadata": {},
619 | "output_type": "execute_result"
620 | }
621 | ],
622 | "source": [
623 | "# 인덱스 밖으로 밀려난 마지막 데이터를 잃게 됩니다.\n",
624 | "df.shift(1).tail()"
625 | ]
626 | },
627 | {
628 | "cell_type": "markdown",
629 | "metadata": {},
630 | "source": [
631 | "## shift backward"
632 | ]
633 | },
634 | {
635 | "cell_type": "code",
636 | "execution_count": 12,
637 | "metadata": {},
638 | "outputs": [
639 | {
640 | "data": {
641 | "text/html": [
642 | "\n",
643 | "\n",
656 | "
\n",
657 | " \n",
658 | " \n",
659 | " | \n",
660 | " High | \n",
661 | " Low | \n",
662 | " Open | \n",
663 | " Close | \n",
664 | " Volume | \n",
665 | " Adj Close | \n",
666 | "
\n",
667 | " \n",
668 | " Date | \n",
669 | " | \n",
670 | " | \n",
671 | " | \n",
672 | " | \n",
673 | " | \n",
674 | " | \n",
675 | "
\n",
676 | " \n",
677 | " \n",
678 | " \n",
679 | " 2009-12-31 | \n",
680 | " 30.642857 | \n",
681 | " 30.340000 | \n",
682 | " 30.490000 | \n",
683 | " 30.572857 | \n",
684 | " 123432400.0 | \n",
685 | " 20.473503 | \n",
686 | "
\n",
687 | " \n",
688 | " 2010-01-04 | \n",
689 | " 30.798571 | \n",
690 | " 30.464285 | \n",
691 | " 30.657143 | \n",
692 | " 30.625713 | \n",
693 | " 150476200.0 | \n",
694 | " 20.508902 | \n",
695 | "
\n",
696 | " \n",
697 | " 2010-01-05 | \n",
698 | " 30.747143 | \n",
699 | " 30.107143 | \n",
700 | " 30.625713 | \n",
701 | " 30.138571 | \n",
702 | " 138040000.0 | \n",
703 | " 20.182680 | \n",
704 | "
\n",
705 | " \n",
706 | " 2010-01-06 | \n",
707 | " 30.285715 | \n",
708 | " 29.864286 | \n",
709 | " 30.250000 | \n",
710 | " 30.082857 | \n",
711 | " 119282800.0 | \n",
712 | " 20.145369 | \n",
713 | "
\n",
714 | " \n",
715 | " 2010-01-07 | \n",
716 | " 30.285715 | \n",
717 | " 29.865715 | \n",
718 | " 30.042856 | \n",
719 | " 30.282858 | \n",
720 | " 111902700.0 | \n",
721 | " 20.279305 | \n",
722 | "
\n",
723 | " \n",
724 | "
\n",
725 | "
"
726 | ],
727 | "text/plain": [
728 | " High Low Open Close Volume Adj Close\n",
729 | "Date \n",
730 | "2009-12-31 30.642857 30.340000 30.490000 30.572857 123432400.0 20.473503\n",
731 | "2010-01-04 30.798571 30.464285 30.657143 30.625713 150476200.0 20.508902\n",
732 | "2010-01-05 30.747143 30.107143 30.625713 30.138571 138040000.0 20.182680\n",
733 | "2010-01-06 30.285715 29.864286 30.250000 30.082857 119282800.0 20.145369\n",
734 | "2010-01-07 30.285715 29.865715 30.042856 30.282858 111902700.0 20.279305"
735 | ]
736 | },
737 | "execution_count": 12,
738 | "metadata": {},
739 | "output_type": "execute_result"
740 | }
741 | ],
742 | "source": [
743 | "df.shift(-1).head()"
744 | ]
745 | },
746 | {
747 | "cell_type": "code",
748 | "execution_count": 13,
749 | "metadata": {},
750 | "outputs": [
751 | {
752 | "data": {
753 | "text/html": [
754 | "\n",
755 | "\n",
768 | "
\n",
769 | " \n",
770 | " \n",
771 | " | \n",
772 | " High | \n",
773 | " Low | \n",
774 | " Open | \n",
775 | " Close | \n",
776 | " Volume | \n",
777 | " Adj Close | \n",
778 | "
\n",
779 | " \n",
780 | " Date | \n",
781 | " | \n",
782 | " | \n",
783 | " | \n",
784 | " | \n",
785 | " | \n",
786 | " | \n",
787 | "
\n",
788 | " \n",
789 | " \n",
790 | " \n",
791 | " 2018-12-24 | \n",
792 | " 157.229996 | \n",
793 | " 146.720001 | \n",
794 | " 148.300003 | \n",
795 | " 157.169998 | \n",
796 | " 58582500.0 | \n",
797 | " 157.169998 | \n",
798 | "
\n",
799 | " \n",
800 | " 2018-12-26 | \n",
801 | " 156.770004 | \n",
802 | " 150.070007 | \n",
803 | " 155.839996 | \n",
804 | " 156.149994 | \n",
805 | " 53117100.0 | \n",
806 | " 156.149994 | \n",
807 | "
\n",
808 | " \n",
809 | " 2018-12-27 | \n",
810 | " 158.520004 | \n",
811 | " 154.550003 | \n",
812 | " 157.500000 | \n",
813 | " 156.229996 | \n",
814 | " 42291400.0 | \n",
815 | " 156.229996 | \n",
816 | "
\n",
817 | " \n",
818 | " 2018-12-28 | \n",
819 | " 159.360001 | \n",
820 | " 156.479996 | \n",
821 | " 158.529999 | \n",
822 | " 157.740005 | \n",
823 | " 35003500.0 | \n",
824 | " 157.740005 | \n",
825 | "
\n",
826 | " \n",
827 | " 2018-12-31 | \n",
828 | " NaN | \n",
829 | " NaN | \n",
830 | " NaN | \n",
831 | " NaN | \n",
832 | " NaN | \n",
833 | " NaN | \n",
834 | "
\n",
835 | " \n",
836 | "
\n",
837 | "
"
838 | ],
839 | "text/plain": [
840 | " High Low Open Close Volume \\\n",
841 | "Date \n",
842 | "2018-12-24 157.229996 146.720001 148.300003 157.169998 58582500.0 \n",
843 | "2018-12-26 156.770004 150.070007 155.839996 156.149994 53117100.0 \n",
844 | "2018-12-27 158.520004 154.550003 157.500000 156.229996 42291400.0 \n",
845 | "2018-12-28 159.360001 156.479996 158.529999 157.740005 35003500.0 \n",
846 | "2018-12-31 NaN NaN NaN NaN NaN \n",
847 | "\n",
848 | " Adj Close \n",
849 | "Date \n",
850 | "2018-12-24 157.169998 \n",
851 | "2018-12-26 156.149994 \n",
852 | "2018-12-27 156.229996 \n",
853 | "2018-12-28 157.740005 \n",
854 | "2018-12-31 NaN "
855 | ]
856 | },
857 | "execution_count": 13,
858 | "metadata": {},
859 | "output_type": "execute_result"
860 | }
861 | ],
862 | "source": [
863 | "df.shift(-1).tail()"
864 | ]
865 | },
866 | {
867 | "cell_type": "markdown",
868 | "metadata": {},
869 | "source": [
870 | "## shifting based on offset alias"
871 | ]
872 | },
873 | {
874 | "cell_type": "code",
875 | "execution_count": 14,
876 | "metadata": {},
877 | "outputs": [
878 | {
879 | "data": {
880 | "text/html": [
881 | "\n",
882 | "\n",
895 | "
\n",
896 | " \n",
897 | " \n",
898 | " | \n",
899 | " High | \n",
900 | " Low | \n",
901 | " Open | \n",
902 | " Close | \n",
903 | " Volume | \n",
904 | " Adj Close | \n",
905 | "
\n",
906 | " \n",
907 | " Date | \n",
908 | " | \n",
909 | " | \n",
910 | " | \n",
911 | " | \n",
912 | " | \n",
913 | " | \n",
914 | "
\n",
915 | " \n",
916 | " \n",
917 | " \n",
918 | " 2010-12-31 | \n",
919 | " 30.478571 | \n",
920 | " 30.080000 | \n",
921 | " 30.447144 | \n",
922 | " 30.104286 | \n",
923 | " 88102700.0 | \n",
924 | " 20.159719 | \n",
925 | "
\n",
926 | " \n",
927 | " 2010-12-31 | \n",
928 | " 30.642857 | \n",
929 | " 30.340000 | \n",
930 | " 30.490000 | \n",
931 | " 30.572857 | \n",
932 | " 123432400.0 | \n",
933 | " 20.473503 | \n",
934 | "
\n",
935 | " \n",
936 | " 2010-12-31 | \n",
937 | " 30.798571 | \n",
938 | " 30.464285 | \n",
939 | " 30.657143 | \n",
940 | " 30.625713 | \n",
941 | " 150476200.0 | \n",
942 | " 20.508902 | \n",
943 | "
\n",
944 | " \n",
945 | " 2010-12-31 | \n",
946 | " 30.747143 | \n",
947 | " 30.107143 | \n",
948 | " 30.625713 | \n",
949 | " 30.138571 | \n",
950 | " 138040000.0 | \n",
951 | " 20.182680 | \n",
952 | "
\n",
953 | " \n",
954 | " 2010-12-31 | \n",
955 | " 30.285715 | \n",
956 | " 29.864286 | \n",
957 | " 30.250000 | \n",
958 | " 30.082857 | \n",
959 | " 119282800.0 | \n",
960 | " 20.145369 | \n",
961 | "
\n",
962 | " \n",
963 | "
\n",
964 | "
"
965 | ],
966 | "text/plain": [
967 | " High Low Open Close Volume Adj Close\n",
968 | "Date \n",
969 | "2010-12-31 30.478571 30.080000 30.447144 30.104286 88102700.0 20.159719\n",
970 | "2010-12-31 30.642857 30.340000 30.490000 30.572857 123432400.0 20.473503\n",
971 | "2010-12-31 30.798571 30.464285 30.657143 30.625713 150476200.0 20.508902\n",
972 | "2010-12-31 30.747143 30.107143 30.625713 30.138571 138040000.0 20.182680\n",
973 | "2010-12-31 30.285715 29.864286 30.250000 30.082857 119282800.0 20.145369"
974 | ]
975 | },
976 | "execution_count": 14,
977 | "metadata": {},
978 | "output_type": "execute_result"
979 | }
980 | ],
981 | "source": [
982 | "# 한 달 앞으로 모든 데이터를 shift\n",
983 | "df.tshift(freq='M', periods=12).head()"
984 | ]
985 | }
986 | ],
987 | "metadata": {
988 | "kernelspec": {
989 | "display_name": "tsa",
990 | "language": "python",
991 | "name": "tsa"
992 | },
993 | "language_info": {
994 | "codemirror_mode": {
995 | "name": "ipython",
996 | "version": 3
997 | },
998 | "file_extension": ".py",
999 | "mimetype": "text/x-python",
1000 | "name": "python",
1001 | "nbconvert_exporter": "python",
1002 | "pygments_lexer": "ipython3",
1003 | "version": "3.7.2"
1004 | }
1005 | },
1006 | "nbformat": 4,
1007 | "nbformat_minor": 2
1008 | }
1009 |
--------------------------------------------------------------------------------
/05. Bollinger Bands.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "markdown",
5 | "metadata": {},
6 | "source": [
7 | "# Bollinger Bands\n",
8 | "볼린져 밴드란 moving average (rolling mean) 에서 위아래로 two standard deviation 만큼의 경계를 표시한 챠트"
9 | ]
10 | },
11 | {
12 | "cell_type": "code",
13 | "execution_count": 1,
14 | "metadata": {},
15 | "outputs": [],
16 | "source": [
17 | "import pandas as pd\n",
18 | "import matplotlib.pyplot as plt\n",
19 | "%matplotlib inline"
20 | ]
21 | },
22 | {
23 | "cell_type": "code",
24 | "execution_count": 2,
25 | "metadata": {},
26 | "outputs": [],
27 | "source": [
28 | "df = pd.read_csv('data/apple_stock.csv', index_col='Date', parse_dates=['Date'])"
29 | ]
30 | },
31 | {
32 | "cell_type": "code",
33 | "execution_count": 3,
34 | "metadata": {},
35 | "outputs": [],
36 | "source": [
37 | "# 20일 주기의 moving average\n",
38 | "df['Close: 20Day Mean'] = df['Close'].rolling(window=20).mean()"
39 | ]
40 | },
41 | {
42 | "cell_type": "code",
43 | "execution_count": 4,
44 | "metadata": {},
45 | "outputs": [],
46 | "source": [
47 | "# 2 standard deviation upper\n",
48 | "df['Upper'] = df['Close: 20Day Mean'] + 2*df['Close'].rolling(20).std()"
49 | ]
50 | },
51 | {
52 | "cell_type": "code",
53 | "execution_count": 5,
54 | "metadata": {},
55 | "outputs": [],
56 | "source": [
57 | "# 2 standard deviation lower\n",
58 | "df['Lower'] = df['Close: 20Day Mean'] - 2*df['Close'].rolling(20).std()"
59 | ]
60 | },
61 | {
62 | "cell_type": "code",
63 | "execution_count": 6,
64 | "metadata": {},
65 | "outputs": [
66 | {
67 | "data": {
68 | "text/plain": [
69 | ""
70 | ]
71 | },
72 | "execution_count": 6,
73 | "metadata": {},
74 | "output_type": "execute_result"
75 | },
76 | {
77 | "data": {
78 | "image/png": "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PIvK6nr6dI/f9ElQASciIiIiIl3QwJ75TP5cHx5asJzaxhYsI4OS08upX7iQzKWL6RfDFShBBZyIiIiIiHRR5x4xhA0NLTzy92D1yZJTTsHy8iif93v658Vv+iSogBMRERERkS7qkL17MGpQD+5/eSktrW1kFheTP/Um9qtawbhH/wtva4s6xKRTASciIiIiIl3WuUcMYcVH9Tz79moA1h08jt989sv0fPUl1v7qVxFHl3wq4EREREREpMs6+sDeDOqVz8x5S3B3KqsbeHTfL+LHnsD6u++h5qmnog4xqVTAiYiIiIhIl5WZYXz78MG8saKa/1teRWVNPZjRd+p15I8ZQ+VVV1P3+utRh5k0KuBERERERKRLO3XkAIrzspk5bwkV1Q3kZWdS0j2fAXfdSVafPqy68SbcPeowk0IFnIiIiIiIdGn5OVmcOXYQf31nNQuWrqdvSbCJd2ZJCb3OPZfGf/2L+oULow4zKVTAiYiIiIhIl3fWoYPIzsjg7YoN9Cvesgdc8QnHk9G9O1UPPhhhdMmjAk5ERERERLq8sqJunDSiHwB9i7ttPp6Rn0/JV77Chr8+R/PqNVGFlzQq4EREREREJCWce8QQAAb2zP/Y8R6nl0NrK9WzZ0cRVlKpgBMRERERkZTwmT5FPPydsZw1btDHjucMGkThhAmsv/9+Gt59N6LokkMFnIiIiIiIpIxxQ3tRkp+zzfG+U68js6iIDy+8kNaNGyOILDlUwImIiIiISMrLKi2l/5130Lyygg/OPoe106ez6aWXaKmqijq0hMqKOgAREREREZFEyB85kn4338S6mTNZN206hHvDZQ8cSN5Bn6PbQZ+n+MQTyOrVK+JId58KOBERERERSRvFJ51E8Ukn0bqploa336bhrX9Q/9Y/qXvjDTY882eKjp4UdYh7RAWciIiIiIiknczCAgrGjKZgzOjNx1rWriVzr70ijGrPqYATEREREZFYyCotjTqEPaZFTERERERERFKECjgREREREZEUoQJOREREREQkRaiAExERERERSREq4ERERERERFKECjgREREREZEUoQJOREREREQkRaiAExERERERSREq4ERERERERFKECjgREREREZEUoQJOREREREQkRaiAExERERERSREq4ERERERERFKEuXu0AZitBZZHGsTH7QWsizoISRrlO96U/3hT/gX0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\n",
79 | "text/plain": [
80 | ""
81 | ]
82 | },
83 | "metadata": {
84 | "needs_background": "light"
85 | },
86 | "output_type": "display_data"
87 | }
88 | ],
89 | "source": [
90 | "df['2018':][['Close', 'Close: 20Day Mean', 'Upper', 'Lower']].plot(figsize=(15,7))"
91 | ]
92 | }
93 | ],
94 | "metadata": {
95 | "kernelspec": {
96 | "display_name": "tsa",
97 | "language": "python",
98 | "name": "tsa"
99 | },
100 | "language_info": {
101 | "codemirror_mode": {
102 | "name": "ipython",
103 | "version": 3
104 | },
105 | "file_extension": ".py",
106 | "mimetype": "text/x-python",
107 | "name": "python",
108 | "nbconvert_exporter": "python",
109 | "pygments_lexer": "ipython3",
110 | "version": "3.7.2"
111 | }
112 | },
113 | "nbformat": 4,
114 | "nbformat_minor": 2
115 | }
116 |
--------------------------------------------------------------------------------
/06. Timezone.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "markdown",
5 | "metadata": {},
6 | "source": [
7 | "# Timezone"
8 | ]
9 | },
10 | {
11 | "cell_type": "code",
12 | "execution_count": 1,
13 | "metadata": {},
14 | "outputs": [],
15 | "source": [
16 | "from datetime import datetime, timezone, timedelta\n",
17 | "import pytz\n",
18 | "import pandas as pd\n",
19 | "import matplotlib.pyplot as plt\n",
20 | "import matplotlib.dates as dates"
21 | ]
22 | },
23 | {
24 | "cell_type": "markdown",
25 | "metadata": {},
26 | "source": [
27 | "Python 내장 패키지를 사용하면 utc timezone 을 설정할 수 있습니다."
28 | ]
29 | },
30 | {
31 | "cell_type": "code",
32 | "execution_count": 3,
33 | "metadata": {},
34 | "outputs": [
35 | {
36 | "data": {
37 | "text/plain": [
38 | "datetime.timezone.utc"
39 | ]
40 | },
41 | "execution_count": 3,
42 | "metadata": {},
43 | "output_type": "execute_result"
44 | }
45 | ],
46 | "source": [
47 | "timezone.utc"
48 | ]
49 | },
50 | {
51 | "cell_type": "code",
52 | "execution_count": 4,
53 | "metadata": {},
54 | "outputs": [
55 | {
56 | "data": {
57 | "text/plain": [
58 | "datetime.datetime(2019, 1, 1, 0, 0)"
59 | ]
60 | },
61 | "execution_count": 4,
62 | "metadata": {},
63 | "output_type": "execute_result"
64 | }
65 | ],
66 | "source": [
67 | "# timezone unawared datetime\n",
68 | "datetime(2019,1,1)"
69 | ]
70 | },
71 | {
72 | "cell_type": "code",
73 | "execution_count": 5,
74 | "metadata": {},
75 | "outputs": [
76 | {
77 | "data": {
78 | "text/plain": [
79 | "datetime.datetime(2019, 1, 1, 0, 0, tzinfo=datetime.timezone.utc)"
80 | ]
81 | },
82 | "execution_count": 5,
83 | "metadata": {},
84 | "output_type": "execute_result"
85 | }
86 | ],
87 | "source": [
88 | "# timezone awared datetime\n",
89 | "datetime(2019,1,1,tzinfo=timezone.utc) "
90 | ]
91 | },
92 | {
93 | "cell_type": "markdown",
94 | "metadata": {},
95 | "source": [
96 | "그러나 utc 외 timezone 을 표시하기 어렵기 때문에 pytz 패키지를 사용합니다."
97 | ]
98 | },
99 | {
100 | "cell_type": "code",
101 | "execution_count": 6,
102 | "metadata": {},
103 | "outputs": [
104 | {
105 | "data": {
106 | "text/plain": [
107 | "True"
108 | ]
109 | },
110 | "execution_count": 6,
111 | "metadata": {},
112 | "output_type": "execute_result"
113 | }
114 | ],
115 | "source": [
116 | "datetime(2019,1,1,tzinfo=timezone.utc) == pytz.UTC.localize(datetime(2019,1,1))"
117 | ]
118 | },
119 | {
120 | "cell_type": "code",
121 | "execution_count": 7,
122 | "metadata": {},
123 | "outputs": [],
124 | "source": [
125 | "# 한국 표준시\n",
126 | "KST = pytz.timezone('Asia/Seoul')"
127 | ]
128 | },
129 | {
130 | "cell_type": "code",
131 | "execution_count": 8,
132 | "metadata": {},
133 | "outputs": [
134 | {
135 | "data": {
136 | "text/plain": [
137 | "False"
138 | ]
139 | },
140 | "execution_count": 8,
141 | "metadata": {},
142 | "output_type": "execute_result"
143 | }
144 | ],
145 | "source": [
146 | "datetime(2019,1,1,tzinfo=timezone.utc) == KST.localize(datetime(2019,1,1))"
147 | ]
148 | },
149 | {
150 | "cell_type": "code",
151 | "execution_count": 12,
152 | "metadata": {},
153 | "outputs": [],
154 | "source": [
155 | "# timezone unawared datetime\n",
156 | "mydate = datetime(2019,1,1)"
157 | ]
158 | },
159 | {
160 | "cell_type": "code",
161 | "execution_count": 13,
162 | "metadata": {},
163 | "outputs": [
164 | {
165 | "data": {
166 | "text/plain": [
167 | "datetime.datetime(2019, 1, 1, 0, 0)"
168 | ]
169 | },
170 | "execution_count": 13,
171 | "metadata": {},
172 | "output_type": "execute_result"
173 | }
174 | ],
175 | "source": [
176 | "mydate"
177 | ]
178 | },
179 | {
180 | "cell_type": "code",
181 | "execution_count": 14,
182 | "metadata": {},
183 | "outputs": [],
184 | "source": [
185 | "# timezone awared datetime\n",
186 | "mydate_kst = KST.localize(mydate)"
187 | ]
188 | },
189 | {
190 | "cell_type": "code",
191 | "execution_count": 15,
192 | "metadata": {},
193 | "outputs": [
194 | {
195 | "data": {
196 | "text/plain": [
197 | "datetime.datetime(2019, 1, 1, 0, 0, tzinfo=)"
198 | ]
199 | },
200 | "execution_count": 15,
201 | "metadata": {},
202 | "output_type": "execute_result"
203 | }
204 | ],
205 | "source": [
206 | "mydate_kst"
207 | ]
208 | },
209 | {
210 | "cell_type": "code",
211 | "execution_count": 17,
212 | "metadata": {},
213 | "outputs": [
214 | {
215 | "data": {
216 | "text/plain": [
217 | "datetime.datetime(2018, 12, 31, 15, 0, tzinfo=)"
218 | ]
219 | },
220 | "execution_count": 17,
221 | "metadata": {},
222 | "output_type": "execute_result"
223 | }
224 | ],
225 | "source": [
226 | "# timezone conversion\n",
227 | "mydate_kst.astimezone(pytz.utc)"
228 | ]
229 | },
230 | {
231 | "cell_type": "code",
232 | "execution_count": 18,
233 | "metadata": {},
234 | "outputs": [
235 | {
236 | "data": {
237 | "text/plain": [
238 | "True"
239 | ]
240 | },
241 | "execution_count": 18,
242 | "metadata": {},
243 | "output_type": "execute_result"
244 | }
245 | ],
246 | "source": [
247 | "mydate_kst.astimezone(pytz.utc) == mydate_kst"
248 | ]
249 | },
250 | {
251 | "cell_type": "markdown",
252 | "metadata": {},
253 | "source": [
254 | "### Timezone formatting\n",
255 | "timezone awared datetime 을 문자열로 표시할 때도 timezone 정보를 포함시킬 수 있습니다."
256 | ]
257 | },
258 | {
259 | "cell_type": "code",
260 | "execution_count": 19,
261 | "metadata": {},
262 | "outputs": [
263 | {
264 | "data": {
265 | "text/plain": [
266 | "'2019-01-01 00:00:00KST'"
267 | ]
268 | },
269 | "execution_count": 19,
270 | "metadata": {},
271 | "output_type": "execute_result"
272 | }
273 | ],
274 | "source": [
275 | "# strftime.org 참조\n",
276 | "mydate_kst.strftime(\"%Y-%m-%d %H:%M:%S%Z\")"
277 | ]
278 | },
279 | {
280 | "cell_type": "code",
281 | "execution_count": 20,
282 | "metadata": {},
283 | "outputs": [
284 | {
285 | "data": {
286 | "text/plain": [
287 | "'2018-12-31 15:00:00UTC'"
288 | ]
289 | },
290 | "execution_count": 20,
291 | "metadata": {},
292 | "output_type": "execute_result"
293 | }
294 | ],
295 | "source": [
296 | "mydate_kst.astimezone(pytz.utc).strftime(\"%Y-%m-%d %H:%M:%S%Z\")"
297 | ]
298 | },
299 | {
300 | "cell_type": "markdown",
301 | "metadata": {},
302 | "source": [
303 | "### Current datetime"
304 | ]
305 | },
306 | {
307 | "cell_type": "code",
308 | "execution_count": 21,
309 | "metadata": {},
310 | "outputs": [],
311 | "source": [
312 | "today = datetime.today()"
313 | ]
314 | },
315 | {
316 | "cell_type": "markdown",
317 | "metadata": {},
318 | "source": [
319 | "**today** 메서드는 시스템에 설정된 환경정보에 따라 timezone 정보 없이 데이터를 리턴하므로 다른 환경의 다른 컴퓨터에서 같은 코드를 실행할 시 문제를 발생시킬 수 있습니다. 절대적인 값으로 현재 시각을 가져올 방법이 필요합니다. **utcnow** 함수는 UTC 기준의 현재 시각을 리턴합니다."
320 | ]
321 | },
322 | {
323 | "cell_type": "code",
324 | "execution_count": 22,
325 | "metadata": {},
326 | "outputs": [
327 | {
328 | "data": {
329 | "text/plain": [
330 | "datetime.datetime(2019, 1, 31, 8, 40, 49, 276846)"
331 | ]
332 | },
333 | "execution_count": 22,
334 | "metadata": {},
335 | "output_type": "execute_result"
336 | }
337 | ],
338 | "source": [
339 | "# utc 표준시 이지만 time unawared datetime 입니다.\n",
340 | "datetime.utcnow()"
341 | ]
342 | },
343 | {
344 | "cell_type": "code",
345 | "execution_count": 23,
346 | "metadata": {},
347 | "outputs": [
348 | {
349 | "data": {
350 | "text/plain": [
351 | "datetime.datetime(2019, 1, 31, 8, 42, 47, 131384, tzinfo=)"
352 | ]
353 | },
354 | "execution_count": 23,
355 | "metadata": {},
356 | "output_type": "execute_result"
357 | }
358 | ],
359 | "source": [
360 | "# time awared datetime 으로 만들어 사용\n",
361 | "datetime.utcnow().astimezone(KST)"
362 | ]
363 | },
364 | {
365 | "cell_type": "markdown",
366 | "metadata": {},
367 | "source": [
368 | "### 최근 금요일 날짜 리턴하는 함수 만들기"
369 | ]
370 | },
371 | {
372 | "cell_type": "markdown",
373 | "metadata": {},
374 | "source": [
375 | "요일 가져오기"
376 | ]
377 | },
378 | {
379 | "cell_type": "code",
380 | "execution_count": 29,
381 | "metadata": {},
382 | "outputs": [
383 | {
384 | "data": {
385 | "text/plain": [
386 | "2"
387 | ]
388 | },
389 | "execution_count": 29,
390 | "metadata": {},
391 | "output_type": "execute_result"
392 | }
393 | ],
394 | "source": [
395 | "# 요일 가져오기; 0:월, 1:화, ... , 6:일\n",
396 | "datetime(2019,1,23).weekday()"
397 | ]
398 | },
399 | {
400 | "cell_type": "code",
401 | "execution_count": 30,
402 | "metadata": {},
403 | "outputs": [
404 | {
405 | "data": {
406 | "text/plain": [
407 | "3"
408 | ]
409 | },
410 | "execution_count": 30,
411 | "metadata": {},
412 | "output_type": "execute_result"
413 | }
414 | ],
415 | "source": [
416 | "today.weekday()"
417 | ]
418 | },
419 | {
420 | "cell_type": "markdown",
421 | "metadata": {},
422 | "source": [
423 | "시간차 정보 다루기"
424 | ]
425 | },
426 | {
427 | "cell_type": "code",
428 | "execution_count": 31,
429 | "metadata": {},
430 | "outputs": [
431 | {
432 | "data": {
433 | "text/plain": [
434 | "datetime.timedelta(seconds=32400)"
435 | ]
436 | },
437 | "execution_count": 31,
438 | "metadata": {},
439 | "output_type": "execute_result"
440 | }
441 | ],
442 | "source": [
443 | "# UTC 시간과 KST 시간 차이는 9시간\n",
444 | "pytz.utc.localize(mydate) - KST.localize(mydate)"
445 | ]
446 | },
447 | {
448 | "cell_type": "code",
449 | "execution_count": 32,
450 | "metadata": {},
451 | "outputs": [
452 | {
453 | "data": {
454 | "text/plain": [
455 | "datetime.datetime(2019, 1, 1, 9, 0, tzinfo=)"
456 | ]
457 | },
458 | "execution_count": 32,
459 | "metadata": {},
460 | "output_type": "execute_result"
461 | }
462 | ],
463 | "source": [
464 | "# UTC 시간에 9시간을 더하기\n",
465 | "pytz.utc.localize(mydate) + timedelta(seconds=32400)"
466 | ]
467 | },
468 | {
469 | "cell_type": "code",
470 | "execution_count": 33,
471 | "metadata": {},
472 | "outputs": [],
473 | "source": [
474 | "def last_friday():\n",
475 | " today = KST.localize(datetime.today())\n",
476 | " offset = 4 - today.weekday() % 4\n",
477 | " aweekago = today - timedelta(weeks=1)\n",
478 | " last_friday = aweekago + timedelta(days=offset)\n",
479 | " return last_friday"
480 | ]
481 | },
482 | {
483 | "cell_type": "code",
484 | "execution_count": 34,
485 | "metadata": {},
486 | "outputs": [
487 | {
488 | "data": {
489 | "text/plain": [
490 | "datetime.datetime(2019, 1, 25, 17, 48, 32, 512183, tzinfo=)"
491 | ]
492 | },
493 | "execution_count": 34,
494 | "metadata": {},
495 | "output_type": "execute_result"
496 | }
497 | ],
498 | "source": [
499 | "last_friday()"
500 | ]
501 | }
502 | ],
503 | "metadata": {
504 | "kernelspec": {
505 | "display_name": "tsa",
506 | "language": "python",
507 | "name": "tsa"
508 | },
509 | "language_info": {
510 | "codemirror_mode": {
511 | "name": "ipython",
512 | "version": 3
513 | },
514 | "file_extension": ".py",
515 | "mimetype": "text/x-python",
516 | "name": "python",
517 | "nbconvert_exporter": "python",
518 | "pygments_lexer": "ipython3",
519 | "version": "3.7.2"
520 | }
521 | },
522 | "nbformat": 4,
523 | "nbformat_minor": 2
524 | }
525 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | BSD 2-Clause License
2 |
3 | Copyright (c) 2019, Hongjoo Lee
4 | All rights reserved.
5 |
6 | Redistribution and use in source and binary forms, with or without
7 | modification, are permitted provided that the following conditions are met:
8 |
9 | * Redistributions of source code must retain the above copyright notice, this
10 | list of conditions and the following disclaimer.
11 |
12 | * Redistributions in binary form must reproduce the above copyright notice,
13 | this list of conditions and the following disclaimer in the documentation
14 | and/or other materials provided with the distribution.
15 |
16 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
17 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
20 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
22 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
23 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
24 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
25 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Time Series Analysis with Pandas
2 |
3 | 19년 1월 24일 T-Academy 에서 진행한 강좌에 사용된 자료입니다. 해당 강좌는 [Youtube](https://www.youtube.com/playlist?list=PLfknNs5QQyrXp7yuslfB5g_Yylj3Rz2fy) 에서 보실 수 있습니다.
4 |
5 | ## Requirements for running tutorial
6 |
7 | - Python version 3
8 | - `pandas` version or later
9 | - `numpy` version 1.15.4 or later
10 | - `matplotlib` version 3.0.2 or later
11 | - `seaborn` version 0.9.0 or later
12 | - `pandas` version 0.23.4 or later
13 | - `scikit-learn` 0.20.2 or later
14 | - `jupyter` version 1.0.0 or later
15 | - `statsmodels` version 0.9.0 or later
16 |
17 | 위 패키지들을 [conda](http://conda.pydata.org/docs/intro.html)를 통해 설치하길 권장합니다. conda 설치 후 아래 커맨드를 실행하면 필요한 모든 패키지들이 설치된 파이썬 환경을 만들 수 있습니다.
18 |
19 | ```bash
20 | conda create --name tsa python=3
21 | conda install pandas jupyter seaborn scikit-learn statsmodels
22 | ```
23 |
24 |
25 | ## Setup instruction
26 |
27 | 1. 프로젝트를 clone 합니다:
28 | ```bash
29 | git clone https://github.com/midnightradio/tsa-tutorial.git
30 | ```
31 |
32 | 2. Python 3 환경이 필요합니다. 되도록 [conda](http://conda.pydata.org/docs/intro.html)를 설치하길 권장합니다.
33 |
34 | 3. 아래 커맨드로 After that, install the environment for this hands-on by running:
35 | ```bash
36 | cd tsa-tutorial/
37 | conda env create --file environment.yml
38 | ```
39 |
40 | 4. Anaconda 를 사용하면 이미 Jupyter Notebook 이 설치되어있으므로 다음 단계로 넘어갑니다. (_Miniconda users only_) 생성된 환경(`tsa`)에서 `conda install jupyter` 를 실행해서 Jupyter Notebook 을 설치할 수 있습니다.
41 |
42 | 5. 생성한 환경을 활성화하기 위해 `source activate tsa` 또는 `conda activate tsa` 를 실행합니다. 그리고 아래 커맨드를 실행해서 새로운 `iptyhon` 커널을 설치합니다:
43 | ```bash
44 | python -m ipykernel install --name tsa --user
45 | ```
46 |
47 | 6. 마지막으로 Jupyter Notebook 을 실행합니다.
48 | ```bash
49 | jupyter notebook --port=8888
50 | ```
51 | 그리고 URL `localhost:8888` 을 브라우져에 입력해서 노트북에 접속합니다. (`8888` 포트가 이미 점유되었다면 Jupyter Notebook 은 자동으로 다른 포트를 이용하게 됩니다. 시작 시 로그를 살펴보세요.)
52 |
53 | ## Index
54 |
55 | - [01. Datatime Index](http://nbviewer.ipython.org/github/midnightradio/tsa-tutorial/blob/master/01.%20Datetime%20Index.ipynb)
56 | - [02. Time Resampling](http://nbviewer.ipython.org/github/midnightradio/tsa-tutorial/blob/master/02.%20Time%20Resampling.ipynb)
57 | - [03. Time Shifting](http://nbviewer.ipython.org/github/midnightradio/tsa-tutorial/blob/master/03.%20Time%20Shifting.ipynb)
58 | - [04. Rolling and Expanding](http://nbviewer.ipython.org/github/midnightradio/tsa-tutorial/blob/master/04.%20Rolling%20and%20Expanding.ipynb)
59 | - [05. Bollinger Bands](http://nbviewer.ipython.org/github/midnightradio/tsa-tutorial/blob/master/05.%20Bollinger%20Bands.ipynb)
60 | - [06. Timezone](http://nbviewer.ipython.org/github/midnightradio/tsa-tutorial/blob/master/06.%20Timezone.ipynb)
61 | - [07. Visualizaing Time Series Data](http://nbviewer.ipython.org/github/midnightradio/tsa-tutorial/blob/master/07.%20Visualizing%20Time%20Series%20Data.ipynb)
62 | - [08. ETS Decomposition](http://nbviewer.ipython.org/github/midnightradio/tsa-tutorial/blob/master/08.%20ETS%20Decomposition.ipynb)
63 | - [09. Forecasting Models](http://nbviewer.ipython.org/github/midnightradio/tsa-tutorial/blob/master/09.%20Forecasting%20Models.ipynb)
64 | - [10. ARIMA and Seasonal ARIMA](http://nbviewer.ipython.org/github/midnightradio/tsa-tutorial/blob/master/10.%20ARIMA%20and%20Seasonal%20ARIMA.ipynb)
65 | - [11. ARIMA and Rolling Forecast](http://nbviewer.ipython.org/github/midnightradio/tsa-tutorial/blob/master/11.%20ARIMA%20and%20Rolling%20Forecast.ipynb)
66 |
--------------------------------------------------------------------------------
/data/airline_passengers.csv:
--------------------------------------------------------------------------------
1 | "Month","Thousands of Passengers"
2 | "1949-01",112
3 | "1949-02",118
4 | "1949-03",132
5 | "1949-04",129
6 | "1949-05",121
7 | "1949-06",135
8 | "1949-07",148
9 | "1949-08",148
10 | "1949-09",136
11 | "1949-10",119
12 | "1949-11",104
13 | "1949-12",118
14 | "1950-01",115
15 | "1950-02",126
16 | "1950-03",141
17 | "1950-04",135
18 | "1950-05",125
19 | "1950-06",149
20 | "1950-07",170
21 | "1950-08",170
22 | "1950-09",158
23 | "1950-10",133
24 | "1950-11",114
25 | "1950-12",140
26 | "1951-01",145
27 | "1951-02",150
28 | "1951-03",178
29 | "1951-04",163
30 | "1951-05",172
31 | "1951-06",178
32 | "1951-07",199
33 | "1951-08",199
34 | "1951-09",184
35 | "1951-10",162
36 | "1951-11",146
37 | "1951-12",166
38 | "1952-01",171
39 | "1952-02",180
40 | "1952-03",193
41 | "1952-04",181
42 | "1952-05",183
43 | "1952-06",218
44 | "1952-07",230
45 | "1952-08",242
46 | "1952-09",209
47 | "1952-10",191
48 | "1952-11",172
49 | "1952-12",194
50 | "1953-01",196
51 | "1953-02",196
52 | "1953-03",236
53 | "1953-04",235
54 | "1953-05",229
55 | "1953-06",243
56 | "1953-07",264
57 | "1953-08",272
58 | "1953-09",237
59 | "1953-10",211
60 | "1953-11",180
61 | "1953-12",201
62 | "1954-01",204
63 | "1954-02",188
64 | "1954-03",235
65 | "1954-04",227
66 | "1954-05",234
67 | "1954-06",264
68 | "1954-07",302
69 | "1954-08",293
70 | "1954-09",259
71 | "1954-10",229
72 | "1954-11",203
73 | "1954-12",229
74 | "1955-01",242
75 | "1955-02",233
76 | "1955-03",267
77 | "1955-04",269
78 | "1955-05",270
79 | "1955-06",315
80 | "1955-07",364
81 | "1955-08",347
82 | "1955-09",312
83 | "1955-10",274
84 | "1955-11",237
85 | "1955-12",278
86 | "1956-01",284
87 | "1956-02",277
88 | "1956-03",317
89 | "1956-04",313
90 | "1956-05",318
91 | "1956-06",374
92 | "1956-07",413
93 | "1956-08",405
94 | "1956-09",355
95 | "1956-10",306
96 | "1956-11",271
97 | "1956-12",306
98 | "1957-01",315
99 | "1957-02",301
100 | "1957-03",356
101 | "1957-04",348
102 | "1957-05",355
103 | "1957-06",422
104 | "1957-07",465
105 | "1957-08",467
106 | "1957-09",404
107 | "1957-10",347
108 | "1957-11",305
109 | "1957-12",336
110 | "1958-01",340
111 | "1958-02",318
112 | "1958-03",362
113 | "1958-04",348
114 | "1958-05",363
115 | "1958-06",435
116 | "1958-07",491
117 | "1958-08",505
118 | "1958-09",404
119 | "1958-10",359
120 | "1958-11",310
121 | "1958-12",337
122 | "1959-01",360
123 | "1959-02",342
124 | "1959-03",406
125 | "1959-04",396
126 | "1959-05",420
127 | "1959-06",472
128 | "1959-07",548
129 | "1959-08",559
130 | "1959-09",463
131 | "1959-10",407
132 | "1959-11",362
133 | "1959-12",405
134 | "1960-01",417
135 | "1960-02",391
136 | "1960-03",419
137 | "1960-04",461
138 | "1960-05",472
139 | "1960-06",535
140 | "1960-07",622
141 | "1960-08",606
142 | "1960-09",508
143 | "1960-10",461
144 | "1960-11",390
145 | "1960-12",432
146 |
--------------------------------------------------------------------------------
/data/monthly-milk-production.csv:
--------------------------------------------------------------------------------
1 | "Month","pounds per cow"
2 | "1962-01",589
3 | "1962-02",561
4 | "1962-03",640
5 | "1962-04",656
6 | "1962-05",727
7 | "1962-06",697
8 | "1962-07",640
9 | "1962-08",599
10 | "1962-09",568
11 | "1962-10",577
12 | "1962-11",553
13 | "1962-12",582
14 | "1963-01",600
15 | "1963-02",566
16 | "1963-03",653
17 | "1963-04",673
18 | "1963-05",742
19 | "1963-06",716
20 | "1963-07",660
21 | "1963-08",617
22 | "1963-09",583
23 | "1963-10",587
24 | "1963-11",565
25 | "1963-12",598
26 | "1964-01",628
27 | "1964-02",618
28 | "1964-03",688
29 | "1964-04",705
30 | "1964-05",770
31 | "1964-06",736
32 | "1964-07",678
33 | "1964-08",639
34 | "1964-09",604
35 | "1964-10",611
36 | "1964-11",594
37 | "1964-12",634
38 | "1965-01",658
39 | "1965-02",622
40 | "1965-03",709
41 | "1965-04",722
42 | "1965-05",782
43 | "1965-06",756
44 | "1965-07",702
45 | "1965-08",653
46 | "1965-09",615
47 | "1965-10",621
48 | "1965-11",602
49 | "1965-12",635
50 | "1966-01",677
51 | "1966-02",635
52 | "1966-03",736
53 | "1966-04",755
54 | "1966-05",811
55 | "1966-06",798
56 | "1966-07",735
57 | "1966-08",697
58 | "1966-09",661
59 | "1966-10",667
60 | "1966-11",645
61 | "1966-12",688
62 | "1967-01",713
63 | "1967-02",667
64 | "1967-03",762
65 | "1967-04",784
66 | "1967-05",837
67 | "1967-06",817
68 | "1967-07",767
69 | "1967-08",722
70 | "1967-09",681
71 | "1967-10",687
72 | "1967-11",660
73 | "1967-12",698
74 | "1968-01",717
75 | "1968-02",696
76 | "1968-03",775
77 | "1968-04",796
78 | "1968-05",858
79 | "1968-06",826
80 | "1968-07",783
81 | "1968-08",740
82 | "1968-09",701
83 | "1968-10",706
84 | "1968-11",677
85 | "1968-12",711
86 | "1969-01",734
87 | "1969-02",690
88 | "1969-03",785
89 | "1969-04",805
90 | "1969-05",871
91 | "1969-06",845
92 | "1969-07",801
93 | "1969-08",764
94 | "1969-09",725
95 | "1969-10",723
96 | "1969-11",690
97 | "1969-12",734
98 | "1970-01",750
99 | "1970-02",707
100 | "1970-03",807
101 | "1970-04",824
102 | "1970-05",886
103 | "1970-06",859
104 | "1970-07",819
105 | "1970-08",783
106 | "1970-09",740
107 | "1970-10",747
108 | "1970-11",711
109 | "1970-12",751
110 | "1971-01",804
111 | "1971-02",756
112 | "1971-03",860
113 | "1971-04",878
114 | "1971-05",942
115 | "1971-06",913
116 | "1971-07",869
117 | "1971-08",834
118 | "1971-09",790
119 | "1971-10",800
120 | "1971-11",763
121 | "1971-12",800
122 | "1972-01",826
123 | "1972-02",799
124 | "1972-03",890
125 | "1972-04",900
126 | "1972-05",961
127 | "1972-06",935
128 | "1972-07",894
129 | "1972-08",855
130 | "1972-09",809
131 | "1972-10",810
132 | "1972-11",766
133 | "1972-12",805
134 | "1973-01",821
135 | "1973-02",773
136 | "1973-03",883
137 | "1973-04",898
138 | "1973-05",957
139 | "1973-06",924
140 | "1973-07",881
141 | "1973-08",837
142 | "1973-09",784
143 | "1973-10",791
144 | "1973-11",760
145 | "1973-12",802
146 | "1974-01",828
147 | "1974-02",778
148 | "1974-03",889
149 | "1974-04",902
150 | "1974-05",969
151 | "1974-06",947
152 | "1974-07",908
153 | "1974-08",867
154 | "1974-09",815
155 | "1974-10",812
156 | "1974-11",773
157 | "1974-12",813
158 | "1975-01",834
159 | "1975-02",782
160 | "1975-03",892
161 | "1975-04",903
162 | "1975-05",966
163 | "1975-06",937
164 | "1975-07",896
165 | "1975-08",858
166 | "1975-09",817
167 | "1975-10",827
168 | "1975-11",797
169 | "1975-12",843
170 |
--------------------------------------------------------------------------------
/data/sales-of-shampoo.csv:
--------------------------------------------------------------------------------
1 | "Month","Sales of shampoo"
2 | "1-01",266.0
3 | "1-02",145.9
4 | "1-03",183.1
5 | "1-04",119.3
6 | "1-05",180.3
7 | "1-06",168.5
8 | "1-07",231.8
9 | "1-08",224.5
10 | "1-09",192.8
11 | "1-10",122.9
12 | "1-11",336.5
13 | "1-12",185.9
14 | "2-01",194.3
15 | "2-02",149.5
16 | "2-03",210.1
17 | "2-04",273.3
18 | "2-05",191.4
19 | "2-06",287.0
20 | "2-07",226.0
21 | "2-08",303.6
22 | "2-09",289.9
23 | "2-10",421.6
24 | "2-11",264.5
25 | "2-12",342.3
26 | "3-01",339.7
27 | "3-02",440.4
28 | "3-03",315.9
29 | "3-04",439.3
30 | "3-05",401.3
31 | "3-06",437.4
32 | "3-07",575.5
33 | "3-08",407.6
34 | "3-09",682.0
35 | "3-10",475.3
36 | "3-11",581.3
37 | "3-12",646.9
38 |
--------------------------------------------------------------------------------
/environment.yml:
--------------------------------------------------------------------------------
1 | name: tsa
2 | channels:
3 | - defaults
4 | dependencies:
5 | - asn1crypto=0.24.0=py37_0
6 | - backcall=0.1.0=py37_0
7 | - blas=1.0=mkl
8 | - bleach=3.1.0=py37_0
9 | - ca-certificates=2018.12.5=0
10 | - certifi=2018.11.29=py37_0
11 | - cffi=1.11.5=py37he75722e_1
12 | - chardet=3.0.4=py37_1
13 | - cryptography=2.4.2=py37h1ba5d50_0
14 | - cycler=0.10.0=py37_0
15 | - dbus=1.13.6=h746ee38_0
16 | - decorator=4.3.0=py37_0
17 | - entrypoints=0.3=py37_0
18 | - expat=2.2.6=he6710b0_0
19 | - fontconfig=2.13.0=h9420a91_0
20 | - freetype=2.9.1=h8a8886c_1
21 | - glib=2.56.2=hd408876_0
22 | - gmp=6.1.2=h6c8ec71_1
23 | - gst-plugins-base=1.14.0=hbbd80ab_1
24 | - gstreamer=1.14.0=hb453b48_1
25 | - icu=58.2=h9c2bf20_1
26 | - idna=2.8=py37_0
27 | - intel-openmp=2019.1=144
28 | - ipykernel=5.1.0=py37h39e3cac_0
29 | - ipython=7.2.0=py37h39e3cac_0
30 | - ipython_genutils=0.2.0=py37_0
31 | - ipywidgets=7.4.2=py37_0
32 | - jedi=0.13.2=py37_0
33 | - jinja2=2.10=py37_0
34 | - jpeg=9b=h024ee3a_2
35 | - jsonschema=2.6.0=py37_0
36 | - jupyter=1.0.0=py37_7
37 | - jupyter_client=5.2.4=py37_0
38 | - jupyter_console=6.0.0=py37_0
39 | - jupyter_core=4.4.0=py37_0
40 | - kiwisolver=1.0.1=py37hf484d3e_0
41 | - libedit=3.1.20181209=hc058e9b_0
42 | - libffi=3.2.1=hd88cf55_4
43 | - libgcc-ng=8.2.0=hdf63c60_1
44 | - libgfortran-ng=7.3.0=hdf63c60_0
45 | - libpng=1.6.36=hbc83047_0
46 | - libsodium=1.0.16=h1bed415_0
47 | - libstdcxx-ng=8.2.0=hdf63c60_1
48 | - libuuid=1.0.3=h1bed415_2
49 | - libxcb=1.13=h1bed415_1
50 | - libxml2=2.9.9=he19cac6_0
51 | - libxslt=1.1.33=h7d1a2b0_0
52 | - lxml=4.3.0=py37hefd8a0e_0
53 | - markupsafe=1.1.0=py37h7b6447c_0
54 | - matplotlib=3.0.2=py37h5429711_0
55 | - mistune=0.8.4=py37h7b6447c_0
56 | - mkl=2019.1=144
57 | - mkl_fft=1.0.10=py37ha843d7b_0
58 | - mkl_random=1.0.2=py37hd81dba3_0
59 | - nbconvert=5.3.1=py37_0
60 | - nbformat=4.4.0=py37_0
61 | - ncurses=6.1=he6710b0_1
62 | - notebook=5.7.4=py37_0
63 | - numpy=1.15.4=py37h7e9f1db_0
64 | - numpy-base=1.15.4=py37hde5b4d6_0
65 | - openssl=1.1.1a=h7b6447c_0
66 | - pandas=0.23.4=py37h04863e7_0
67 | - pandas-datareader=0.7.0=py37_0
68 | - pandoc=2.2.3.2=0
69 | - pandocfilters=1.4.2=py37_1
70 | - parso=0.3.1=py37_0
71 | - patsy=0.5.1=py37_0
72 | - pcre=8.42=h439df22_0
73 | - pexpect=4.6.0=py37_0
74 | - pickleshare=0.7.5=py37_0
75 | - pip=18.1=py37_0
76 | - prometheus_client=0.5.0=py37_0
77 | - prompt_toolkit=2.0.7=py37_0
78 | - ptyprocess=0.6.0=py37_0
79 | - pycparser=2.19=py37_0
80 | - pygments=2.3.1=py37_0
81 | - pyopenssl=18.0.0=py37_0
82 | - pyparsing=2.3.1=py37_0
83 | - pyqt=5.9.2=py37h05f1152_2
84 | - pysocks=1.6.8=py37_0
85 | - python=3.7.2=h0371630_0
86 | - python-dateutil=2.7.5=py37_0
87 | - pytz=2018.9=py37_0
88 | - pyzmq=17.1.2=py37h14c3975_0
89 | - qt=5.9.7=h5867ecd_1
90 | - qtconsole=4.4.3=py37_0
91 | - readline=7.0=h7b6447c_5
92 | - requests=2.21.0=py37_0
93 | - scikit-learn=0.20.2=py37hd81dba3_0
94 | - scipy=1.1.0=py37h7c811a0_2
95 | - seaborn=0.9.0=py37_0
96 | - send2trash=1.5.0=py37_0
97 | - setuptools=40.6.3=py37_0
98 | - sip=4.19.8=py37hf484d3e_0
99 | - six=1.12.0=py37_0
100 | - sqlite=3.26.0=h7b6447c_0
101 | - statsmodels=0.9.0=py37h035aef0_0
102 | - terminado=0.8.1=py37_1
103 | - testpath=0.4.2=py37_0
104 | - tk=8.6.8=hbc83047_0
105 | - tornado=5.1.1=py37h7b6447c_0
106 | - traitlets=4.3.2=py37_0
107 | - urllib3=1.24.1=py37_0
108 | - wcwidth=0.1.7=py37_0
109 | - webencodings=0.5.1=py37_1
110 | - wheel=0.32.3=py37_0
111 | - widgetsnbextension=3.4.2=py37_0
112 | - wrapt=1.11.0=py37h7b6447c_0
113 | - xz=5.2.4=h14c3975_4
114 | - zeromq=4.2.5=hf484d3e_1
115 | - zlib=1.2.11=h7b6447c_3
116 | - pip:
117 | - ephem==3.7.6.0
118 | - lunardate==0.2.0
119 | - pycalverter==1.6.1
120 | - workalendar==3.2.1
121 |
--------------------------------------------------------------------------------