
377
10
장
파이썬 성능 개선
10.5.1
파이썬
우선 금융 상품의 금융 시계열 데이터를 가진
DataFrame
객체의
DatetimeIndex
에 대해 반
복 작업을 하는 파이썬 버전을 생각해보자(
8
장 참조). [그림
10
-
3
]은 금융 시계열과
EWMA
시계열이다.
In [148]: import pandas as pd
In [149]: sym = 'SPY'
In [150]: data = pd.DataFrame(pd.read_csv('../../source/tr_eikon_eod_data.csv',
index_col=0, parse_dates=True)[sym]).dropna()
In [151]: alpha = 0.25
In [152]: data['EWMA'] = data[sym]
➊
In [153]: %%time
for t in zip(data.index, data.index[1:]):
data.loc[t[1], 'EWMA'] = (alpha * data.loc[t[1], sym] +
(1 - alpha) * data.loc[t[0], 'EWMA'])
➋
CPU times: user 588 ms, sys: 16.4 ms, total: 605 ms
Wall time: 591 ms
In [154]: data.head()
Out[154]: SPY EWMA
Date ...