다양한 경제지표 데이터를 한 번에 수집하기
이번에는 기준금리, 국고채 금리, 회사체 금리, 코스피지수, 원달러환율 데이터를 한 번에 불러와 액셀 파일에 저장하겠습니다. 필요한 갓은 각 지표의 통계표코드와 통계항목 코드입니다.
ECOS의 통계코드검색(https://ecos.bok.or.kr/api/#/DevGuide/StatisticalCodeSearch)페이지에서 다섯 가지 지표의 통계값 코드와 통계항목 코드를 검색합니다.
비주얼 스튜디오 코드에서 새로운 파일을 생성하고 파일명을 'step_2_2.py'로 변경합니다. 다음과 같이 코드를 입력하고 대화형 창에서 실행하면 'output' 폴더에 'step_2_2.xlsx' 파일이 생성됩니다. 출력 파일의 형식이 CSV가 아닌 xlsx인 이유는 엑셀 파일에 지표별로 워크 시트를 생성하기 위해서 입니다.
from pathlib import Path
import pandas as pd
from datakart import Ecos
from step_1_1 import OUT_DIR # 이전에 작성한 모듈을 불러옵니다.
OUT_2_2 = OUT_DIR / f"{Path(__file__).stem}.xlsx"
def ecos_to_xlsx(): # 08
ECOS_KEY = "K2D2864OFY3ZCW1J93OT"
CODE_LIST = [ # [지표명, 통계표코드, 주기, 통계항목코드, 요청건수] # 10
["기준금리", "722Y001", "D", "0101000", 1000],
["국고채", "817Y002", "D", "010200000", 1000],
["회사채", "817Y002", "D", "010300000", 1000],
["코스피지수", "802Y001", "D", "0001000", 1000],
["원달러환율", "731Y001", "D", "0000001", 1000],
] # 16
with pd.ExcelWriter(OUT_2_2) as writer: # ExcelWriter 객체 생성 # 18
ecos = Ecos(ECOS_KEY) # Ecos 객체 생성
for name, stat_code, freq, item_code1, limit in CODE_LIST: # 20
resp = ecos.stat_search( # 통게표 코드
stat_code=stat_code,
freq=freq, # 주기
item_code1=item_code1, # 통계항목코드1
limit=limit # 요청건수
) # 26
df_raw = pd.DataFrame(resp) # 27
df_raw.to_excel(writer, sheet_name=name, index=False) # 28
if __name__ == "__main__":
ecos_to_xlsx()
08 주요 경제지표 데이터를 수집하고 액셀 파일로 저장하는 함수 ecos_to_xlsx()를 정의합니다.
10~16 수집할 경제지표의 항목, 통계표코드, 주기, 통계항목코드, 요청건수를 리스트 형식으로 변수 CODE_LIST에 저장합니다. 주기를 'D'로 지정하며 일별 데이터를 수집합니다.
18 pandas 패키지의 ExcelWriter 객체를 만들고 변수 writer에 저장합니다. ExcelWriter 객체는 여러 개의 워크시트로 구성된 액셀 파일을 생성합니다.
20~26 for 반복문을 사용해 CODE_LIST에 저장한 값을 하나씩 Ecos 객체의 stat_search() 함수의 입력값으로 전달합니다.
27 변수 df_raw에 stat_search() 함수의 반환값을 데이터프레임으로 저장합니다.
28 to_excel() 함수에 매개변수 sheet_name을 전달해서 액셀 파일 내부 각 워크 시트의 이름을 지정합니다.
실행 결과로 생성된 액셀 파일 'step_2_2.xlsx'는 다셧 개의 워크시트로 구성되어 있습니다. 각 시트의 이름은 경제지표의 항목으로 '기준금리', '국고채', '화사채', '코스피지수', '원달러환율'의 데이터가 분리되어 데이터를 편리하게 파악할 수 있습니다.

'프로그래밍 언어 > Python' 카테고리의 다른 글
| 주요 경제지표 그래프 한 번에 시각화하기 (0) | 2026.04.27 |
|---|---|
| 코스피 지수 시각화하기 (0) | 2026.04.24 |
| 다양한 경제지표 데이터 수집하기 - ECOS API 사용하기 (0) | 2026.04.18 |
| 통계 조회 조건 설정 API 사용하기 - 기준금리 데이터 수집 (0) | 2026.04.15 |
| 통계 조회 시간 설정 API 사용하기 - 국내총생산 데이터 샘플 사용하기 (1) | 2026.04.10 |