1회차 · CH03

데이터를 가져오는 두 가지 방법

KOBIS 데이터는 무료이고, 파일로 받을 때는 로그인도 필요 없습니다. 같은 데이터라도 가져오는 방법에 따라 속도와 수고가 달라집니다.


오픈 API 호출엑셀 파일 내려받기
방식날짜 하루씩, 영화 한 편씩 주소(URL)로 요청역대 상위 500편 표를 파일 하나로 한 번에 받기
준비회원가입 후 인증키 발급 필요없음 — 버튼 한 번
속도기간이 길수록 수천 번 호출 — 느림파일 하나 — 빠름
적합한 상황매일 새 순위를 자동으로 받아야 할 때전체를 놓고 집계·비교할 때

KOBIS도 오픈 API를 제공하지만, 인증키 없이 요청하면 "유효하지않은 키값입니다."라는 답만 돌아옵니다. 게다가 API는 "그날의 박스오피스 10위"처럼 하루 단위로 답하기 때문에, 역대 순위를 만들려면 수천 일치를 요청해 합쳐야 합니다.

오늘처럼 "연도별 평균을 비교"하는 작업은 전체 데이터가 필요하므로 파일 내려받기가 유리합니다. 통계정보 → 역대 박스오피스 → 엑셀 버튼으로 받은 파일 하나면 충분합니다.

💡 파일을 못 받았다면 — 수업용으로 같은 날(2026-09-28) 받아 둔 사본이 있습니다. 원본 엑셀 파일 · 정리한 CSV

엑셀인데, 엑셀이 아니다

받은 파일 이름은 KOBIS_역대_박스오피스_내역(공식통계_기준)_2026-09-28.xls입니다. 엑셀 프로그램으로 열면 잘 보이는데, 파이썬에서 엑셀로 읽으려 하면 이런 오류가 납니다.

ValueError: Excel file format cannot be determined, you must specify an engine manually.

파일 속을 열어 보면 진짜 엑셀이 아니라 웹페이지(HTML)에 표를 담고 확장자만 .xls로 붙인 파일입니다. 공공 사이트의 "엑셀 다운로드"에서 흔히 만나는 모습입니다. 이럴 때 Claude Code에 오류 메시지를 그대로 보여 주면, 파일 속을 확인하고 웹페이지 표로 읽는 방법으로 바꿔 줍니다.

"KOBIS에서 받은 역대 박스오피스 .xls 파일을 읽어줘. 엑셀로 안 읽히면 파일 속이 실제로 어떤 형식인지 확인하고 맞는 방법으로 읽어서, 몇 편이 들어 있는지와 열 이름을 알려줘."

💡 전처리도 여기서 함께. 결측치·중복·형태가 다른 값을 맞추는 작업까지 같은 대화 안에서 Claude Code에 시킬 수 있습니다.

데이터 소스는 한 곳이 아니다

오늘은 KOBIS 한 곳을 쓰지만, 실제 분석에선 여러 소스를 섞는 경우가 많습니다. 어디서 오든 Claude Code에 "여기서 가져와줘"라고 말하는 방식은 같습니다.

소스예시가져오는 방법
APIKOBIS 오픈 API, 날씨·환율 API인증키를 받아 주소(URL)로 요청
통계 사이트 파일KOBIS 역대 박스오피스, 통계청 KOSIS엑셀·CSV 버튼으로 내려받기
공공데이터공공데이터포털, 서울 열린데이터광장파일 다운로드 또는 오픈 API
내 파일업무 엑셀, 설문 결과 CSV폴더에 넣고 파일명을 알려주기

전처리 — 분석할 수 있는 모양으로 다듬기

받은 데이터를 바로 계산할 수 있는 경우는 드뭅니다. 이 파일에서도 네 가지 손질이 필요했습니다.

손질박스오피스 데이터에서
군더더기 걷어내기표 위의 제목·조회일·출처 네 줄을 빼고, 거의 비어 있는 "서울 기준" 열 두 개를 지우기
형태 맞추기개봉일(2014-07-30)을 날짜로 바꾸고 개봉 연도 열 만들기
단위 맞추기매출액 135748398910(원)을 억 원 단위로, 관객 수를 만 명 단위로
빈 값 표시하기2008년 이전 개봉작 99편의 매출 0을 "기록 없음"(결측)으로 바꾸기 — 0으로 두면 평균 매출이 엉터리로 낮아짐

"읽어 온 박스오피스 표를 분석하기 좋게 전처리해줘. 1) 비어 있는 열은 지우고 2) 개봉일에서 개봉 연도 열을 만들고 3) 매출액은 억 원, 관객 수는 만 명 단위 열을 추가하고 4) 매출액이 0인 행은 결측으로 바꾼 뒤 몇 개인지 알려줘."

이것만 기억하세요

수집은 코드를 외우는 일이 아니라, 무엇을 어떻게 가져올지 판단하는 일입니다. 판단만 서면 실행은 자연어로 시키면 됩니다.

다음
04. 2014년은 정말 흥행이 잘된 해였을까
이어보기 →