├── .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 | " \n", 209 | " \n", 210 | " \n", 211 | " \n", 212 | " \n", 213 | " \n", 214 | " \n", 215 | " \n", 216 | " \n", 217 | " \n", 218 | " \n", 219 | " \n", 220 | " \n", 221 | " \n", 222 | " \n", 223 | " \n", 224 | "
AB
2019-01-23-1.0936580.300429
2019-01-241.2178560.792852
\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 | " \n", 182 | " \n", 183 | " \n", 184 | " \n", 185 | " \n", 186 | " \n", 187 | " \n", 188 | " \n", 189 | " \n", 190 | " \n", 191 | " \n", 192 | " \n", 193 | " \n", 194 | " \n", 195 | " \n", 196 | " \n", 197 | " \n", 198 | " \n", 199 | " \n", 200 | " \n", 201 | " \n", 202 | " \n", 203 | " \n", 204 | " \n", 205 | " \n", 206 | " \n", 207 | " \n", 208 | " \n", 209 | " \n", 210 | " \n", 211 | " \n", 212 | " \n", 213 | " \n", 214 | " \n", 215 | " \n", 216 | " \n", 217 | " \n", 218 | " \n", 219 | " \n", 220 | " \n", 221 | " \n", 222 | " \n", 223 | " \n", 224 | " \n", 225 | " \n", 226 | " \n", 227 | " \n", 228 | " \n", 229 | " \n", 230 | " \n", 231 | " \n", 232 | " \n", 233 | " \n", 234 | " \n", 235 | " \n", 236 | " \n", 237 | " \n", 238 | " \n", 239 | " \n", 240 | " \n", 241 | " \n", 242 | " \n", 243 | " \n", 244 | " \n", 245 | "
HighLowOpenCloseVolumeAdj Close
Date
2009-12-3130.47857130.08000030.44714430.10428688102700.020.159719
2010-01-0430.64285730.34000030.49000030.572857123432400.020.473503
2010-01-0530.79857130.46428530.65714330.625713150476200.020.508902
2010-01-0630.74714330.10714330.62571330.138571138040000.020.182680
2010-01-0730.28571529.86428630.25000030.082857119282800.020.145369
\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 | " \n", 294 | " \n", 295 | " \n", 296 | " \n", 297 | " \n", 298 | " \n", 299 | " \n", 300 | " \n", 301 | " \n", 302 | " \n", 303 | " \n", 304 | " \n", 305 | " \n", 306 | " \n", 307 | " \n", 308 | " \n", 309 | " \n", 310 | " \n", 311 | " \n", 312 | " \n", 313 | " \n", 314 | " \n", 315 | " \n", 316 | " \n", 317 | " \n", 318 | " \n", 319 | " \n", 320 | " \n", 321 | " \n", 322 | " \n", 323 | " \n", 324 | " \n", 325 | " \n", 326 | " \n", 327 | " \n", 328 | " \n", 329 | " \n", 330 | " \n", 331 | " \n", 332 | " \n", 333 | " \n", 334 | " \n", 335 | " \n", 336 | " \n", 337 | " \n", 338 | " \n", 339 | " \n", 340 | " \n", 341 | " \n", 342 | " \n", 343 | " \n", 344 | " \n", 345 | " \n", 346 | " \n", 347 | " \n", 348 | " \n", 349 | " \n", 350 | " \n", 351 | " \n", 352 | " \n", 353 | " \n", 354 | " \n", 355 | " \n", 356 | " \n", 357 | "
HighLowOpenCloseVolumeAdj Close
Date
2018-12-24151.550003146.589996148.149994146.83000237169200.0146.830002
2018-12-26157.229996146.720001148.300003157.16999858582500.0157.169998
2018-12-27156.770004150.070007155.839996156.14999453117100.0156.149994
2018-12-28158.520004154.550003157.500000156.22999642291400.0156.229996
2018-12-31159.360001156.479996158.529999157.74000535003500.0157.740005
\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 | " \n", 421 | " \n", 422 | " \n", 423 | " \n", 424 | " \n", 425 | " \n", 426 | " \n", 427 | " \n", 428 | " \n", 429 | " \n", 430 | " \n", 431 | " \n", 432 | " \n", 433 | " \n", 434 | " \n", 435 | " \n", 436 | " \n", 437 | " \n", 438 | " \n", 439 | " \n", 440 | " \n", 441 | " \n", 442 | " \n", 443 | " \n", 444 | " \n", 445 | " \n", 446 | " \n", 447 | " \n", 448 | " \n", 449 | " \n", 450 | " \n", 451 | " \n", 452 | " \n", 453 | " \n", 454 | " \n", 455 | " \n", 456 | " \n", 457 | " \n", 458 | " \n", 459 | " \n", 460 | " \n", 461 | " \n", 462 | " \n", 463 | " \n", 464 | " \n", 465 | " \n", 466 | " \n", 467 | " \n", 468 | " \n", 469 | " \n", 470 | " \n", 471 | " \n", 472 | " \n", 473 | " \n", 474 | " \n", 475 | " \n", 476 | " \n", 477 | " \n", 478 | " \n", 479 | " \n", 480 | " \n", 481 | " \n", 482 | " \n", 483 | " \n", 484 | "
HighLowOpenCloseVolumeAdj Close
Date
2009-12-31NaNNaNNaNNaNNaNNaN
2010-01-0430.47857130.08000030.44714430.10428688102700.020.159719
2010-01-0530.64285730.34000030.49000030.572857123432400.020.473503
2010-01-0630.79857130.46428530.65714330.625713150476200.020.508902
2010-01-0730.74714330.10714330.62571330.138571138040000.020.182680
\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 | " \n", 533 | " \n", 534 | " \n", 535 | " \n", 536 | " \n", 537 | " \n", 538 | " \n", 539 | " \n", 540 | " \n", 541 | " \n", 542 | " \n", 543 | " \n", 544 | " \n", 545 | " \n", 546 | " \n", 547 | " \n", 548 | " \n", 549 | " \n", 550 | " \n", 551 | " \n", 552 | " \n", 553 | " \n", 554 | " \n", 555 | " \n", 556 | " \n", 557 | " \n", 558 | " \n", 559 | " \n", 560 | " \n", 561 | " \n", 562 | " \n", 563 | " \n", 564 | " \n", 565 | " \n", 566 | " \n", 567 | " \n", 568 | " \n", 569 | " \n", 570 | " \n", 571 | " \n", 572 | " \n", 573 | " \n", 574 | " \n", 575 | " \n", 576 | " \n", 577 | " \n", 578 | " \n", 579 | " \n", 580 | " \n", 581 | " \n", 582 | " \n", 583 | " \n", 584 | " \n", 585 | " \n", 586 | " \n", 587 | " \n", 588 | " \n", 589 | " \n", 590 | " \n", 591 | " \n", 592 | " \n", 593 | " \n", 594 | " \n", 595 | " \n", 596 | "
HighLowOpenCloseVolumeAdj Close
Date
2018-12-24158.160004149.630005156.860001150.72999695744600.0150.729996
2018-12-26151.550003146.589996148.149994146.83000237169200.0146.830002
2018-12-27157.229996146.720001148.300003157.16999858582500.0157.169998
2018-12-28156.770004150.070007155.839996156.14999453117100.0156.149994
2018-12-31158.520004154.550003157.500000156.22999642291400.0156.229996
\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 | " \n", 661 | " \n", 662 | " \n", 663 | " \n", 664 | " \n", 665 | " \n", 666 | " \n", 667 | " \n", 668 | " \n", 669 | " \n", 670 | " \n", 671 | " \n", 672 | " \n", 673 | " \n", 674 | " \n", 675 | " \n", 676 | " \n", 677 | " \n", 678 | " \n", 679 | " \n", 680 | " \n", 681 | " \n", 682 | " \n", 683 | " \n", 684 | " \n", 685 | " \n", 686 | " \n", 687 | " \n", 688 | " \n", 689 | " \n", 690 | " \n", 691 | " \n", 692 | " \n", 693 | " \n", 694 | " \n", 695 | " \n", 696 | " \n", 697 | " \n", 698 | " \n", 699 | " \n", 700 | " \n", 701 | " \n", 702 | " \n", 703 | " \n", 704 | " \n", 705 | " \n", 706 | " \n", 707 | " \n", 708 | " \n", 709 | " \n", 710 | " \n", 711 | " \n", 712 | " \n", 713 | " \n", 714 | " \n", 715 | " \n", 716 | " \n", 717 | " \n", 718 | " \n", 719 | " \n", 720 | " \n", 721 | " \n", 722 | " \n", 723 | " \n", 724 | "
HighLowOpenCloseVolumeAdj Close
Date
2009-12-3130.64285730.34000030.49000030.572857123432400.020.473503
2010-01-0430.79857130.46428530.65714330.625713150476200.020.508902
2010-01-0530.74714330.10714330.62571330.138571138040000.020.182680
2010-01-0630.28571529.86428630.25000030.082857119282800.020.145369
2010-01-0730.28571529.86571530.04285630.282858111902700.020.279305
\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 | " \n", 773 | " \n", 774 | " \n", 775 | " \n", 776 | " \n", 777 | " \n", 778 | " \n", 779 | " \n", 780 | " \n", 781 | " \n", 782 | " \n", 783 | " \n", 784 | " \n", 785 | " \n", 786 | " \n", 787 | " \n", 788 | " \n", 789 | " \n", 790 | " \n", 791 | " \n", 792 | " \n", 793 | " \n", 794 | " \n", 795 | " \n", 796 | " \n", 797 | " \n", 798 | " \n", 799 | " \n", 800 | " \n", 801 | " \n", 802 | " \n", 803 | " \n", 804 | " \n", 805 | " \n", 806 | " \n", 807 | " \n", 808 | " \n", 809 | " \n", 810 | " \n", 811 | " \n", 812 | " \n", 813 | " \n", 814 | " \n", 815 | " \n", 816 | " \n", 817 | " \n", 818 | " \n", 819 | " \n", 820 | " \n", 821 | " \n", 822 | " \n", 823 | " \n", 824 | " \n", 825 | " \n", 826 | " \n", 827 | " \n", 828 | " \n", 829 | " \n", 830 | " \n", 831 | " \n", 832 | " \n", 833 | " \n", 834 | " \n", 835 | " \n", 836 | "
HighLowOpenCloseVolumeAdj Close
Date
2018-12-24157.229996146.720001148.300003157.16999858582500.0157.169998
2018-12-26156.770004150.070007155.839996156.14999453117100.0156.149994
2018-12-27158.520004154.550003157.500000156.22999642291400.0156.229996
2018-12-28159.360001156.479996158.529999157.74000535003500.0157.740005
2018-12-31NaNNaNNaNNaNNaNNaN
\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 | " \n", 900 | " \n", 901 | " \n", 902 | " \n", 903 | " \n", 904 | " \n", 905 | " \n", 906 | " \n", 907 | " \n", 908 | " \n", 909 | " \n", 910 | " \n", 911 | " \n", 912 | " \n", 913 | " \n", 914 | " \n", 915 | " \n", 916 | " \n", 917 | " \n", 918 | " \n", 919 | " \n", 920 | " \n", 921 | " \n", 922 | " \n", 923 | " \n", 924 | " \n", 925 | " \n", 926 | " \n", 927 | " \n", 928 | " \n", 929 | " \n", 930 | " \n", 931 | " \n", 932 | " \n", 933 | " \n", 934 | " \n", 935 | " \n", 936 | " \n", 937 | " \n", 938 | " \n", 939 | " \n", 940 | " \n", 941 | " \n", 942 | " \n", 943 | " \n", 944 | " \n", 945 | " \n", 946 | " \n", 947 | " \n", 948 | " \n", 949 | " \n", 950 | " \n", 951 | " \n", 952 | " \n", 953 | " \n", 954 | " \n", 955 | " \n", 956 | " \n", 957 | " \n", 958 | " \n", 959 | " \n", 960 | " \n", 961 | " \n", 962 | " \n", 963 | "
HighLowOpenCloseVolumeAdj Close
Date
2010-12-3130.47857130.08000030.44714430.10428688102700.020.159719
2010-12-3130.64285730.34000030.49000030.572857123432400.020.473503
2010-12-3130.79857130.46428530.65714330.625713150476200.020.508902
2010-12-3130.74714330.10714330.62571330.138571138040000.020.182680
2010-12-3130.28571529.86428630.25000030.082857119282800.020.145369
\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/gX0dxB3yn+8daX8D3L30p05MfICrqsxs7+7+6io45DkUL7jTfmPN+VfQH8Hcaf8x1uq5l9TKEVERERERFKECjgREREREZEUoQJuW/dGHYAklfIdb8p/vCn/Avo7iDvlP95SMv96Bk5ERERERCRFaAROREREREQkRaiAExGRtGZm3aKOQUREJFFUwIlILJiZRR2DJJeZ9TOzacCJ4df6GxCJGX3uJR3FroAzszIzy4o6DkkOM+tvZl83s35RxyLJF3bgrzKzUtcDv7FhZplm9h3gYiAHOBxAfwPxZGZ9zazczMqijkWSy8z6A9lRxyHRSOc+f6wKODM7GHgM+HH4te7KpCkzywg7cDcA+wNXmllBxGFJkoQd+AuBi4B/uPvaqGOSpDoeKAauc/fzgOVmlhdxTJJkFjgXuBHYCzjBzI6MOCxJEjMbAjwOXBt+rT5fjKR7nz9WBRzB73sLcKiZ7evunm4Jlc0OAkqAi9z9WqAU2CfSiCSZxgPfdfcrgEoz+6qZDY86KOk8ZnaQmZ1gZjnAH9395+5eb2ZfAIa6e33UMUrSDQVGAFPcfRrQCkwys5HRhiWdqUO/LhOYDoxQny+W0rrPn9YFXIcGPTc8lOHuzwCzgMtBU2rSSZjvE80s193fdPfb3H2TmY0D8oBeZlYUdZzSObbK/wvAy2b2W2ACQUN+iZlNNrPMaCOVRDKzbDO7FrgGOJrgbuvn2r/v7q8BWWY2OKIQJYk6XgcI+jhVwAHhVLqBwHpg/3TqyEmg/TPesV/n7r8j6PNdsfX3JL3Erc+flvvAmVk2cCVBI14JfAQ87u5vdTjnUWCGuz9nZhnu3hZNtLKntpPvdcDT7v5GOIXiMmBe+P0md58aVaySeNvJfzVwP1ALDHf3ueF5xwH7u/vtUcUqiWdm+wI/cvcLwq9PJpg2Pdvdl4bPPX1Pn/v0ttV1YBWwElhAUMRNIphS+xDBbIz93f2nZmbp1KGLMzM7CbgOuMndH986t+rzpa+49vnTdQRuENDP3U9z94uAN4HjtroDeyfwfYB0SGTMbZ3vt4BjzWwfd18C/MDdHyKYStEtXR9ojbGt878Q+AZQ5O5zO4y4vQ6UagQu7XwIlIQjLACvEDTi4wDcfQ0w3MzGRBSfJEfH68CFwCJgLPAOwTNwF7r7ywSFXQGk1934uOowkroR+Blwjplltk+X63C9V58vfcWyz5+uBdwnNehj209w978Ba8zsqAjik8TaUQeu1cyOJrg79w+C5yAkfWwv/yv5eP4nAtcDC91d+U8DHW7EZAJzgYMB3H0V0Eiw+iRhB24GsCKCMCV5tr4OzAdWA0e5e314HTgKmAK8EFWQklgdivB6d58FvA1cGh6z9uu9+nxpLZZ9/rQq4HaiQc/d6rwfhM/KSAraQb4b2JLvM4BTgLvc/SHddU0Pu9CBPwI4jSD/syMIVfaQmRWa2Q1mdma4shju3mJmhcBhQA2wt5mNCF9STbCABe7e6u5/cfeKSIKXTrWD60A9W9qBcQSrk/7U3f87glAlwTrOpnH3+eF/byNYqGaAu7dZsCJ1e19Xfb400mF0NZZ9/pQt4PawQW8J/22KIHTZDbuR7xpgSPj/Z9z9e+7+dvIjl0TYw8/7PHc/X/lPTeEd03uBtQR5PjqcGnUy8BzQnWBEpRKYambnAN8iGIGRNLKH14H57n6pu78TSfCyRz4l993N7EtmlhM+9/YRwdLx/xme09Y+ZU59vtQV5n+KmY22cF/fcFQ9tn3+lCzg1KDHy27m+5sEw+iEF3RJUXv6ee/wjISkmPDO+Whgqrv/CtgALAtH0d8Cvu7uj7r7WnefA/wCaCNY1OSZyAKXhNN1IL52kPs/A707ds7dfQbQ18wGRRKwJJSZfQm4B2ghGG271MwKwuNziWmfP+VWoQwb9MuAOe6+yMy+CJS5+yNmNhRoc/elHc4fT7D/1/+4+wdRxCy7T/mON+U/fsxsb2BF+1RnM7uZYIGCuQQrCA4muPn4vLv/y4IVyFrT5cF02ZauA/G1G7nPDEdmurl7Q0RhS4JYsK/nNcBv3X2xBVtB3UqwUMljBIuVxfKznxIFnBr0eFG+4035jy8zOwB4GJjl7j8Nj2UTTIU5FXjC3f9pwXOth3u4dYCkH10H4ms3c9+i59vTw3byfyfB6Ot04BygAvgy8J/uXmHBs3Aet89+l59CGTboTxFuwhiaCjwBHAN84O7TCTbrvAjA3Zvjlsh0oXzHm/IfewbcBRxuW1YUayFYlKjQ3f8ZHssAtBBFmtJ1IL72IPcq3tLAJ+T/BoJ24FqCaZJPEaw03QibF6qK3We/yxdwqEGPG+U73pT/GDGzQ8zsW2ZWEB5qcPffAE8TNuAeWAaMM7MLzOyXwEHAy5EELcmg60B8Kffxtk3+w3UMbgMud/fZ4dTYfkBzdGFGr8tNoTSzQ4ARwGx3rzWzIe6+xMzOBz7rwQad7ee+SDDd5kCCSvxOd18ZSeCyW5TveFP+48mCZZ1vBPoT3EndALzh7n/ucM6TBEu+ty9CsR8wEljtWgY+reg6EF/KfbztSv7D8w8mWKDkXeBuj/G+rl2mgFODHi/Kd7wp//EV5r4EuM7dp4THRhI82/BLd38vPDYZ+La7fy2qWKVz6ToQX8p9vO1q/sNVZEuBs4F57v5KBGF3KVk7PqXzdWjQC939rPDYSOAcM1vc3qADdwOXAF8DcPdFwKIIQpY9oHzHm/IfT2Z2HHAs8L6732Fmg81skLsvJ1hRbD5wInA7gLv/xcxON7PR7v5qdJFLZ9B1IL6U+3jbnfyHzziuIZhKKUT8DJyZHWdm04Ap7r4OGGxb9u3o2KADQYMO1JnZ6ORHK3tK+Y435T+ezCzXzH4BHErQ+B5iZucB9wGTw9PagGVAU3h++83F81S8pRddB+JLuY835T+xIing1KDHi/Idb8p/vLl7IzDD3a8KR9vuBFqBD4D+ZjYmXEGskGB/p0Z3b+nwWkkDug7El3Ifb8p/54hkCqW7N5rZDHd/Fzbv8TCCoEE/JGzQF5jZ5ga942ujiFl2n/Idb8q/tOc+NJpgj5/XzawPcJ2ZPQ0cAfwBwMzMu8oD2pIQug7El3Ifb8p/54jsGTg16PGifMeb8i9mlhmuGJYHvBUefpagET8QuNTdKyHYOiCaKKUz6ToQX8p9vCn/iRfpIiZq0ONF+Y435T/efMtyz7UEUyenAMuBab5lbydJc7oOxJdyH2/Kf2JFWsCpQY8X5TvelH+xYBnwiwka7We9w5LREg+6DsSXch9vyn9iRb4PXNigP4ka9FhQvuNN+Y83MxsAnEbQYDdFHY9EQ9eB+FLu4035T5yuUMCpQY8R5TvelH8R0XUgvpT7eFP+EyfyAk5ERERERER2TqQbeYuIiIiIiMjOUwEnIiIiIiKSIlTAiYiIiIiIpAgVcCIiIiIiIiki0n3gREREOpOZfQD8FWgD8oFb3f2tHbzmT+5+XDLiExER2VUq4EREJJ0tcvdzAcysGJhjZme4e8WnvCY3OaGJiIjsOhVwIiISC+5eY2a3A98AbjOz44EvAgbUufs1ZnYZ8BkzmwbcCpQAVwBrgUzgh+7eGskvICIigp6BExGReFkG7B3+/wOgG+DAyWbW091vA9519x+4+wrgZ8AF7v5D4B3g5AhiFhER2UwjcCIiEif7A8vMLAe4FzjZ3VeZ2T4Ez8h9tNX5Q4GrzQygGHg5eaGKiIhsSwWciIjEgpkNBi4GTiEoxj4Ii7c84NAOp7aZWWY4VXIJcL271yc/YhERkW2Zu0cdg4iISKcwsw+B58Iva4FfuPuS8Hs/J5hCmR/+e5m7rzSzq4ADCEbomoFLgXVANjDF3euS+1uIiIhsoQJOREREREQkRWgRExERERERkRShAk5ERERERCRFqIATERERERFJESrgREREREREUoQKOBERERERkRShAk5ERERERCRFqIATERERERFJESrgREREREREUsT/A+Fe9AzduN75AAAAAElFTkSuQmCC\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 | --------------------------------------------------------------------------------