본문 바로가기

퀀트(Quant)

3. ETF 기본데이터 추출(거래량 데이터 합치기)

앞에서 추출한 거래량 데이터를 합쳐서 하나의 파일로 생성합니다.

모든 소스코드는 구글 코랩을 이용하여 테스트 하였습니다.

1. import 및 환경설정

# 앞에서 생성한 자료를 하나로 합친다.
from functools import reduce
import pandas as pd
# pandas 설정 및 메타데이터 세팅 
pd.options.display.float_format = '{:.4f}'.format
pd.set_option('display.max_columns', None)

위의 디스플레이 옵션 display.float_format은 실수형 데이터 출력시 소수점 4자리 끼지만 조회합니다. 

display.max_columns은 출력시 칼럼에 제한없이 모두 출력시킵니다.

 

2. 파일 불러오기

etf01   = pd.read_csv('drive/My Drive/ETF/ETFVolume_01.csv')
etf02   = pd.read_csv('drive/My Drive/ETF/ETFVolume_02.csv')
etf03   = pd.read_csv('drive/My Drive/ETF/ETFVolume_03.csv')
etf04   = pd.read_csv('drive/My Drive/ETF/ETFVolume_04.csv')
etf05   = pd.read_csv('drive/My Drive/ETF/ETFVolume_05.csv')
etf06   = pd.read_csv('drive/My Drive/ETF/ETFVolume_06.csv')
etf07   = pd.read_csv('drive/My Drive/ETF/ETFVolume_07.csv')
etf08   = pd.read_csv('drive/My Drive/ETF/ETFVolume_08.csv')
etf09   = pd.read_csv('drive/My Drive/ETF/ETFVolume_09.csv')

파일을 판다스 데이터프레임의 형태로 불러들입니다. input파일은 csv형태 파일로 앞에서 생성한 데이터입니다.

 

3. 인덱스 추가

etf01 = etf01.set_index('Date')
etf02 = etf02.set_index('Date')
etf03 = etf03.set_index('Date')
etf04 = etf04.set_index('Date')
etf05 = etf05.set_index('Date')
etf06 = etf06.set_index('Date')
etf07 = etf07.set_index('Date')
etf08 = etf08.set_index('Date')
etf09 = etf09.set_index('Date')

위에서 불러들인 데이터프레임 자료에 날짜인덱스를 추가합니다.

 

4. 데이터프레임 머지(merge)

dfs = [etf01, etf02, etf03, etf04, etf05, etf06, etf07, etf08, etf09]
etf_merge = reduce(lambda left, right: pd.merge(left, right, how='outer', on='Date'), dfs)

여러개의 데이터프레임을 한꺼번에 합치기 위해 reduce 함수를 사용합니다.

 

5. 파일 저장

etf_merge.to_csv('drive/My Drive/ETF/ETFVolumeALL_211221.csv')

향후 사용하기 위해 파일로 저장합니다.

위의 디렉토리는 구글 코랩의 드라이브 저장소로 사용자마다 원하는 장소에 저장하시면 됩니다.