![](https://t1.daumcdn.net/keditor/emoticon/friends1/large/001.gif)
vectorized 백테스팅 - 몇년치를 모아서 한번에 벡터처리(속도 면에서 좋다.)
event-base 백테스팅 - 하루하루 이벤트들을 시물레이션화(좀더 실전성에 좋다.)
투입되는 시간/자원
금융데이터 수집 : 40%
데이터 전처리/분석 : 30%
백테스팅 : 20%
기타 : 10%
python -m notebook
pandas series는 Data의 '순서'가 아니라 index label이 자동으로 정렬되어 연산이 진행됨!(리스트보다는 딕셔러니 개념)
# 하나의 cell에서 multiple output을 출력을 가능하게 하는 코드
from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = "all"
import FinanceDataReader as fdr
# 삼성전자
df1 = fdr.DataReader("005930", '2018-01-02', '2018-10-30')
# KODEX 200 (ETF)
df2 = fdr.DataReader("069500", '2018-01-02', '2018-10-30')
과거 데이터로 nan데이터 채워넣기
new_df2.fillna(method="ffill")
quantile - serires와 같음
value_counts() 는 NAN 취급안함
n개중에 사이즈 정의
# PER이 가장작은 100개중에서, 그 중에서 당기순이익이 가장 큰 5개 종목의 데이터
df.nsmallest(100, "PER(배)").nlargest(5, '당기순이익(억원)')
정렬
df.sort_values(
['순이익률(%)', 'EPS(원)'],
ascending=[True, False]
).head()
필터
df.filter(like="P").head()
df.filter(regex="P\w+R").head()
df.get_dtype_counts() 대신 df.dtypes.value_counts() 사용 데이터타입 개수구하는 함수