안녕하세요 여몽의 눈동자입니다. 이번에는 여러개의 자료를 한번에 읽어들이는 경우를 보겠습니다. 여러가지 방법이 있겠지만 여기서는 엑셀파일에 들어있는 자료의 리스트를 읽어서 반복적으로 데이터를 추출하는 방법을 소개합니다.
1. 불러올 자료 리스트 만들기
먼저 불러올 시계열들의 통계코드, 세부항목 등을 엑셀파일에 저장합니다. 한국은행 ECOS에 수록된 데이터의 통계코드 목록은 제 다른 포스팅을 참조하세요.
여기서는 거시경제지표중 실업률, 고용률, 생산자물가등락률, 소비자물가등락률, 주택매매가격등락률 등 총 5개의 시계열 데이터를 읽어들이는 경우를 가정하겠습니다.
제가 이미 한국은행 ECOS에 수록된 모든 월별시계열이 수록된 목록을 업로드 한 적이 있는데요 (다운로드) 이 파일에서 위의 5개 데이터만 뽑아서 다음과 같은 엑셀 파일을 만들었다고 가정하겠습니다.
여기서는 데이터를 읽어들이기 위해 필요한 것은 통계코드, 주기, 항목코드1, 항목명1 열입니다. 그러나 데이터에 따라 항목코드2 와 3은 나중에 필요할 수도 있기 때문에 남겨두고 필요한 열만 남기면 다음과 같이 됩니다.
(이 파일 다운로드)
2. 파이썬에서 데이터 추출
이제 파이썬에서 이 목록을 불러와서 반복적으로 데이터를 추출하는 코딩을 하면 됩니다. 아래 코드는 여기에서 다운 받으실 수 있습니다.
우선 라이브러리를 불러오고, 엑셀파일에서 목록데이터 (통계코드, 항목명 등등)를 불러들입니다. 위의 엑셀파일은 Ecos_download_example.xlsx 라는 이름으로 저장되어 있습니다.
이제 데이터를 실제로 불러오는 함수를 정의 합니다. 다만 엑셀파일에 공백인 셀이 있는데 우리는 함수의 인자로 문자열을 넣을 것이기 때문에 NaN 값을 문자공백 ''로 변경해줍니다.
지난번 포스팅과는 달리 현재 함수는 여러 시계열을 불러들여 병합할 것이므로 통계명도 입력인수로 포함하였음을 볼 수 있습니다. (입력된 통계명은 데이터프레임의 column name이 됩니다.)
이제 반복적인 추출을 하고 이를 병합하여 하나의 테이블로 만듭니다.
추출이 완료된 결과를 확인 할 수 있습니다.
3. 다운로드 결과를 엑셀로 저장
참고로 이를 다시 엑셀파일로 저장하고자 할 경우 다음과 같이 저장하면 됩니다.
1. 불러올 자료 리스트 만들기
먼저 불러올 시계열들의 통계코드, 세부항목 등을 엑셀파일에 저장합니다. 한국은행 ECOS에 수록된 데이터의 통계코드 목록은 제 다른 포스팅을 참조하세요.
여기서는 거시경제지표중 실업률, 고용률, 생산자물가등락률, 소비자물가등락률, 주택매매가격등락률 등 총 5개의 시계열 데이터를 읽어들이는 경우를 가정하겠습니다.
제가 이미 한국은행 ECOS에 수록된 모든 월별시계열이 수록된 목록을 업로드 한 적이 있는데요 (다운로드) 이 파일에서 위의 5개 데이터만 뽑아서 다음과 같은 엑셀 파일을 만들었다고 가정하겠습니다.
여기서는 데이터를 읽어들이기 위해 필요한 것은 통계코드, 주기, 항목코드1, 항목명1 열입니다. 그러나 데이터에 따라 항목코드2 와 3은 나중에 필요할 수도 있기 때문에 남겨두고 필요한 열만 남기면 다음과 같이 됩니다.
(이 파일 다운로드)
2. 파이썬에서 데이터 추출
이제 파이썬에서 이 목록을 불러와서 반복적으로 데이터를 추출하는 코딩을 하면 됩니다. 아래 코드는 여기에서 다운 받으실 수 있습니다.
우선 라이브러리를 불러오고, 엑셀파일에서 목록데이터 (통계코드, 항목명 등등)를 불러들입니다. 위의 엑셀파일은 Ecos_download_example.xlsx 라는 이름으로 저장되어 있습니다.
이제 데이터를 실제로 불러오는 함수를 정의 합니다. 다만 엑셀파일에 공백인 셀이 있는데 우리는 함수의 인자로 문자열을 넣을 것이기 때문에 NaN 값을 문자공백 ''로 변경해줍니다.
지난번 포스팅과는 달리 현재 함수는 여러 시계열을 불러들여 병합할 것이므로 통계명도 입력인수로 포함하였음을 볼 수 있습니다. (입력된 통계명은 데이터프레임의 column name이 됩니다.)
이제 반복적인 추출을 하고 이를 병합하여 하나의 테이블로 만듭니다.
추출이 완료된 결과를 확인 할 수 있습니다.
3. 다운로드 결과를 엑셀로 저장
참고로 이를 다시 엑셀파일로 저장하고자 할 경우 다음과 같이 저장하면 됩니다.
댓글
댓글 쓰기