파이썬으로 미분양주택현황 데이터 조회하기

Python 라이브러리 PublicDataReader를 이용하면 최신 지역별 주민등록인구 데이터를 쉽게 가져올 수 있다. 해당 데이터는 국가통계포털(KOSIS) 웹 사이트에 접속해 직접 조회할 수도 있지만, KOSIS 공유서비스 Open API를 이용해서도 조회할 수 있다. PublicDataReader는 KOSIS 공유서비스 Open API의 데이터 조회 기능을 포함하고 있어, 이를 활용하면 원하는 데이터를 쉽게 찾고 조회할 수 있다. KOSIS 공유서비스 Open API 신청 방법과 PublicDataReader에서 제공하는 KOSIS 공유서비스 Open API의 모든 기능을 살펴보려면 Python으로 KOSIS 데이터 조회하기를 참고하면 된다. 여기서는 ‘미분양주택현황(시도/시/군/구)’ 데이터를 조회하는 방법을 다루기로 한다.
설치하기
- 운영체제(OS)에 따라 아래 중 하나를 선택한다.
- Windows: CMD(명령 프롬프트) 실행
- Mac: Terminal(터미널) 실행
아래 Shell 명령어를 입력 후 실행한다.
pip install PublicDataReader --upgrade
라이브러리 임포트하기
앞에서 설치한 PublicDataReader에서 Kosis 클래스를 임포트한다. KOSIS 공유서비스에서 발급받은 오픈 API 사용자 인증키 정보를 service_key 변수에 할당한다. Kosis의 인자료 service_key를 입력하여 데이터 조회 인스턴스 api를 만든다.
from PublicDataReader import Kosis
# KOSIS 공유서비스 Open API 사용자 인증키
service_key = "사용자 인증키"
# 인스턴스 생성하기
api = Kosis(service_key)
조회할 데이터 찾기
api.get_data() 메서드의 첫 번째 인자로 ‘KOSIS통합검색’을 지정한다. searchNm에는 조회할 데이터를 찾기 위한 키워드를 입력한다. 반환된 데이터프레임에서 조회할 데이터를 찾아 기관ID(ORG_ID)와 통계표ID(TBL_ID) 값을 확인한다. ‘미분양주택현황(시도/시/군/구)’ 데이터의 기관ID는 101이고, 통계표ID는 DT_1YL202001E 이므로 이 값들을 데이터를 조회할 때 사용한다. 참고로 api.get_data() 메서드에 translate=False 옵션을 지정하면 영문 컬럼명으로 데이터를 조회할 수 있다. 이 인자의 기본값은 True이므로 국문 컬럼명으로 조회한다.
df = api.get_data(
"KOSIS통합검색",
searchNm="시군구 미분양"
)
df.head(1)
| 기관ID | 기관명 | 통계표ID | 통계표명 | 조사ID | 조사명 | KOSIS목록구분 | KOSIS통계표위치 | 통계표위치 | 통계표주요내용 | 수록기간시작일 | 수록기간종료일 | 통계표주석 | 추천통계표여부 | KOSIS목록URL | KOSIS통계표URL | 검색결과건수 | 검색어명 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 116 | 국토교통부 | DT_MLTM_5328 | 공사완료후 미분양현황 | 1998033 | 미분양주택현황보고 | MT_ZTITLE | 주거 > 미분양주택현황보고 | I1 > I1_2 | 구분 시군구 부문 규모 울산 대전 전남 경기 충남 세종 경남 제주 전국 광주 강원 ... | 2007 | 2022 | 자료 : 국토교통부 주택토지실 주택정책관 주택정책과 | N | https://kosis.kr/statisticsList/statisticsList... | http://kosis.kr/statHtml/statHtml.do?orgId=116... | 251 | 시군구 미분양 |
데이터 수록 주기와 시점 확인
api.get_data() 메서드의 첫 번째 인자로 ‘통계표설명’을 지정한다. 통계표설명의 경우 상세기능도 추가적으로 지정해야 한다. 두 번째 인자로 ‘자료갱신일’을 입력하고, 위에서 복사해둔 기관ID와 통계표ID의 값들을 api.get_data()의 인자로 입력해 데이터 수록주기와 수록시점을 확인한다. 수록주기(PRD_SE) 별 최근 수록시점(PRD_DE) 값을 조회하면 수록주기는 월 기준이며, 2000년 12월 ~ 2022년 11월 데이터가 수록되어 있는 것을 알 수 있다.
df = api.get_data(
"통계표설명",
"자료갱신일",
orgId="101",
tblId="DT_1YL202001E"
)
df.groupby(by=['수록주기']).agg({"수록시점": ["min", "max"]})
| 수록시점 | ||
|---|---|---|
| min | max | |
| 수록주기 | ||
| 월 | 200012 | 202211 |
데이터 항목 및 분류 확인하기
api.get_data() 메서드의 첫 번째 인자로 ‘통계표설명’을 지정한다. 두 번째 인자로 ‘분류항목’을 입력하고, 이번에도 기관ID와 통계표ID를 api.get_data()의 인자로 입력해 결과를 확인한다. 분류ID의 값이 ‘ITEM’ 이면 항목을 뜻하고 이 때, 분류값ID의 값을 통계자료 조회 시 itmId의 값으로 입력한다. 분류ID 값이 ITEM 이 아니고, 분류값순번 값에 숫자가 입력되어 있는 경우 이는 분류를 뜻하고, 분류값순번의 숫자 값이 분류 수준을 뜻한다. 예를 들어, 분류ID 값이 A이고, 분류값순번 값이 1이라면, 분류ID 값을 통계자료 조회 시 objL1의 값으로 입력한다.
item = api.get_data(
"통계표설명",
"분류항목",
orgId="101",
tblId="DT_1YL202001E",
)
item.head()
| 기관ID | 통계표ID | 분류ID | 분류명 | 분류영문명 | 분류값ID | 분류값명 | 분류값영문명 | 분류값순번 | |
|---|---|---|---|---|---|---|---|---|---|
| 0 | 101 | DT_1YL202001E | ITEM | 항목 | Item code list | 13103871087T1 | 미분양현황 | Unsold Housing | NaN |
| 1 | 101 | DT_1YL202001E | 13101871087A | 구분 | SiGunGu | 13102871087A.0001 | 총계 | Total | 1 |
| 2 | 101 | DT_1YL202001E | 13101871087A | 구분 | SiGunGu | 13102871087A.0002 | 전국 | Whole Country | 1 |
| 3 | 101 | DT_1YL202001E | 13101871087A | 구분 | SiGunGu | 13102871087A.0003 | 서울 | Seoul | 1 |
| 4 | 101 | DT_1YL202001E | 13101871087A | 구분 | SiGunGu | 13102871087A.0004 | 부산 | Busan | 1 |
항목을 조회한 결과를 살펴보면 ‘미분양현황’ 하나만 선택 가능하다. 분류값ID의 값인 13103871087T1를 복사해둔다.
item.loc[item["분류값순번"].isna()]
| 기관ID | 통계표ID | 분류ID | 분류명 | 분류영문명 | 분류값ID | 분류값명 | 분류값영문명 | 분류값순번 | |
|---|---|---|---|---|---|---|---|---|---|
| 0 | 101 | DT_1YL202001E | ITEM | 항목 | Item code list | 13103871087T1 | 미분양현황 | Unsold Housing | NaN |
다음은 분류1의 조회 결과다. 분류1은 구분을 뜻하며 전국, 서울, 부산, 대구 등 여러 시도 단위 지역 기준들이 존재한다. 전체 선택할 것이므로 별도로 분류값ID(ITM_ID)를 복사하지 않아도 된다.
item.loc[item["분류값순번"]=="1"]
| 기관ID | 통계표ID | 분류ID | 분류명 | 분류영문명 | 분류값ID | 분류값명 | 분류값영문명 | 분류값순번 | |
|---|---|---|---|---|---|---|---|---|---|
| 1 | 101 | DT_1YL202001E | 13101871087A | 구분 | SiGunGu | 13102871087A.0001 | 총계 | Total | 1 |
| 2 | 101 | DT_1YL202001E | 13101871087A | 구분 | SiGunGu | 13102871087A.0002 | 전국 | Whole Country | 1 |
| 3 | 101 | DT_1YL202001E | 13101871087A | 구분 | SiGunGu | 13102871087A.0003 | 서울 | Seoul | 1 |
| 4 | 101 | DT_1YL202001E | 13101871087A | 구분 | SiGunGu | 13102871087A.0004 | 부산 | Busan | 1 |
| 5 | 101 | DT_1YL202001E | 13101871087A | 구분 | SiGunGu | 13102871087A.0005 | 대구 | Daegu | 1 |
| 6 | 101 | DT_1YL202001E | 13101871087A | 구분 | SiGunGu | 13102871087A.0006 | 인천 | Incheon | 1 |
| 7 | 101 | DT_1YL202001E | 13101871087A | 구분 | SiGunGu | 13102871087A.0007 | 광주 | Gwangju | 1 |
| 8 | 101 | DT_1YL202001E | 13101871087A | 구분 | SiGunGu | 13102871087A.0008 | 대전 | Daejeon | 1 |
| 9 | 101 | DT_1YL202001E | 13101871087A | 구분 | SiGunGu | 13102871087A.0009 | 울산 | Ulsan | 1 |
| 10 | 101 | DT_1YL202001E | 13101871087A | 구분 | SiGunGu | 13102871087A.0019 | 세종 | Sejong | 1 |
| 11 | 101 | DT_1YL202001E | 13101871087A | 구분 | SiGunGu | 13102871087A.0010 | 경기 | Gyeonggi | 1 |
| 12 | 101 | DT_1YL202001E | 13101871087A | 구분 | SiGunGu | 13102871087A.0011 | 강원 | Gangwon-do | 1 |
| 13 | 101 | DT_1YL202001E | 13101871087A | 구분 | SiGunGu | 13102871087A.0012 | 충북 | Chungcheongbuk-do | 1 |
| 14 | 101 | DT_1YL202001E | 13101871087A | 구분 | SiGunGu | 13102871087A.0013 | 충남 | Chungcheongnam-do | 1 |
| 15 | 101 | DT_1YL202001E | 13101871087A | 구분 | SiGunGu | 13102871087A.0014 | 전북 | Jeollabuk-do | 1 |
| 16 | 101 | DT_1YL202001E | 13101871087A | 구분 | SiGunGu | 13102871087A.0015 | 전남 | Jeollanam-do | 1 |
| 17 | 101 | DT_1YL202001E | 13101871087A | 구분 | SiGunGu | 13102871087A.0016 | 경북 | Gyeongsangbuk-do | 1 |
| 18 | 101 | DT_1YL202001E | 13101871087A | 구분 | SiGunGu | 13102871087A.0017 | 경남 | Gyeongsangnam-do | 1 |
| 19 | 101 | DT_1YL202001E | 13101871087A | 구분 | SiGunGu | 13102871087A.0018 | 제주 | Jeju | 1 |
다음은 분류2의 조회 결과다. 분류2는 시군구를 뜻하며 종로구, 강남구 등 여러 시군구 단위 지역 기준들이 존재한다. 분류1에서와 마찬가지로 전체 선택하기로 한다. 분류값ID(ITM_ID)를 따로 복사하지 않아도 된다.
item.loc[item["분류값순번"]=="2"]
| 기관ID | 통계표ID | 분류ID | 분류명 | 분류영문명 | 분류값ID | 분류값명 | 분류값영문명 | 분류값순번 | |
|---|---|---|---|---|---|---|---|---|---|
| 20 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0001 | 총계 | NaN | 2 |
| 21 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0002 | 계 | NaN | 2 |
| 22 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0003 | 소계 | Sub Total | 2 |
| 23 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0004 | 종로구 | Jongno-gu | 2 |
| 24 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0005 | 강남구 | NaN | 2 |
| 25 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0006 | 중구 | NaN | 2 |
| 26 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0007 | 강동구 | NaN | 2 |
| 27 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0008 | 용산구 | NaN | 2 |
| 28 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0009 | 강북구 | Gangbuk-gu | 2 |
| 29 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0010 | 성동구 | Seongdong-gu | 2 |
| 30 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0011 | 강서구 | NaN | 2 |
| 31 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0012 | 광진구 | NaN | 2 |
| 32 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0013 | 동대문구 | Dongdaemun-gu | 2 |
| 33 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0014 | 관악구 | Gwanak-gu | 2 |
| 34 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0015 | 중랑구 | Jungnang-gu | 2 |
| 35 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0016 | 성북구 | Seongbuk-gu | 2 |
| 36 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0017 | 구로구 | Guro-gu | 2 |
| 37 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0018 | 금천구 | Geumcheon-gu | 2 |
| 38 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0019 | 노원구 | Nowon-gu | 2 |
| 39 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0020 | 도봉구 | Dobong-gu | 2 |
| 40 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0021 | 은평구 | Eunpyeong-gu | 2 |
| 41 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0022 | 서대문구 | Seodaemun-gu | 2 |
| 42 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0023 | 동작구 | Dongjak-gu | 2 |
| 43 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0024 | 마포구 | Mapo-gu | 2 |
| 44 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0025 | 양천구 | Yangcheon-gu | 2 |
| 45 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0026 | 서초구 | Seocho-gu | 2 |
| 46 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0027 | 영등포구 | Yeongdeungpo-gu | 2 |
| 47 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0028 | 송파구 | Songpa-gu | 2 |
| 48 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0029 | 서구 | Seo-gu | 2 |
| 49 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0030 | 동구 | NaN | 2 |
| 50 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0031 | 금정구 | NaN | 2 |
| 51 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0032 | 영도구 | NaN | 2 |
| 52 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0033 | 기장군 | NaN | 2 |
| 53 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0034 | 남구 | Nam-gu | 2 |
| 54 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0035 | 부산진구 | Busanjin-gu | 2 |
| 55 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0036 | 동래구 | Dongnae-gu | 2 |
| 56 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0037 | 북구 | Buk-gu | 2 |
| 57 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0038 | 해운대구 | Haeundae-gu | 2 |
| 58 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0039 | 사상구 | NaN | 2 |
| 59 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0040 | 사하구 | NaN | 2 |
| 60 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0041 | 연제구 | Yeonje-gu | 2 |
| 61 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0042 | 수영구 | Suyeong-gu | 2 |
| 62 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0043 | 수성구 | Suseong-gu | 2 |
| 63 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0044 | 달서구 | Dalseo-gu | 2 |
| 64 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0045 | 달성군 | Dalseong-gun | 2 |
| 65 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0046 | 남동구 | Namdong-gu | 2 |
| 66 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0047 | 연수구 | Yeonsu-gu | 2 |
| 67 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0048 | 미추홀구 | Michuhol-gu | 2 |
| 68 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0049 | 부평구 | Bupyeong-gu | 2 |
| 69 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0050 | 계양구 | Gyeyang-gu | 2 |
| 70 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0051 | 강화군 | Ganghwa-gun | 2 |
| 71 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0052 | 옹진군 | Ongjin-gun | 2 |
| 72 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0053 | 광산구 | Gwangsan-gu | 2 |
| 73 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0054 | 유성구 | Yuseong-gu | 2 |
| 74 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0055 | 대덕구 | Daedeok-gu | 2 |
| 75 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0056 | 울주군 | Ulju-gun | 2 |
| 76 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0057 | 수원시 | Suwon-si | 2 |
| 77 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0058 | 세종시 | NaN | 2 |
| 78 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0059 | 가평군 | Gapyeong-gun | 2 |
| 79 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0060 | 성남시 | NaN | 2 |
| 80 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0061 | 고양시 | NaN | 2 |
| 81 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0062 | 의정부시 | NaN | 2 |
| 82 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0063 | 과천시 | NaN | 2 |
| 83 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0064 | 안양시 | NaN | 2 |
| 84 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0065 | 광명시 | Gwangmyeong-si | 2 |
| 85 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0066 | 부천시 | NaN | 2 |
| 86 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0067 | 광주시 | NaN | 2 |
| 87 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0068 | 구리시 | Guri-si | 2 |
| 88 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0069 | 평택시 | NaN | 2 |
| 89 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0070 | 동두천시 | NaN | 2 |
| 90 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0071 | 군포시 | NaN | 2 |
| 91 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0072 | 김포시 | NaN | 2 |
| 92 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0073 | 안산시 | NaN | 2 |
| 93 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0074 | 남양주시 | NaN | 2 |
| 94 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0075 | 시흥시 | NaN | 2 |
| 95 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0076 | 오산시 | NaN | 2 |
| 96 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0077 | 안성시 | NaN | 2 |
| 97 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0078 | 의왕시 | NaN | 2 |
| 98 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0079 | 하남시 | NaN | 2 |
| 99 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0080 | 양주시 | NaN | 2 |
| 100 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0081 | 양평군 | NaN | 2 |
| 101 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0082 | 용인시 | NaN | 2 |
| 102 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0083 | 여주군 | Yeoju-gun | 2 |
| 103 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0084 | 파주시 | NaN | 2 |
| 104 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0085 | 이천시 | NaN | 2 |
| 105 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0086 | 연천군 | NaN | 2 |
| 106 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0087 | 여주시 | NaN | 2 |
| 107 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0088 | 화성시 | NaN | 2 |
| 108 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0089 | 포천시 | NaN | 2 |
| 109 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0090 | 춘천시 | NaN | 2 |
| 110 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0091 | 원주시 | NaN | 2 |
| 111 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0092 | 강릉시 | NaN | 2 |
| 112 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0093 | 동해시 | NaN | 2 |
| 113 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0094 | 태백시 | NaN | 2 |
| 114 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0095 | 속초시 | NaN | 2 |
| 115 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0096 | 삼척시 | NaN | 2 |
| 116 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0097 | 홍천군 | NaN | 2 |
| 117 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0098 | 횡성군 | NaN | 2 |
| 118 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0099 | 영월군 | NaN | 2 |
| 119 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0100 | 평창군 | NaN | 2 |
| 120 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0101 | 정선군 | NaN | 2 |
| 121 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0102 | 철원군 | NaN | 2 |
| 122 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0103 | 화천군 | NaN | 2 |
| 123 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0104 | 양구군 | NaN | 2 |
| 124 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0105 | 인제군 | NaN | 2 |
| 125 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0106 | 고성군 | NaN | 2 |
| 126 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0107 | 양양군 | NaN | 2 |
| 127 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0108 | 청주시 | NaN | 2 |
| 128 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0109 | 괴산군 | NaN | 2 |
| 129 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0110 | 충주시 | NaN | 2 |
| 130 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0111 | 단양군 | Danyang-gun | 2 |
| 131 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0112 | 제천시 | NaN | 2 |
| 132 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0113 | 보은군 | NaN | 2 |
| 133 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0114 | 청원군 | NaN | 2 |
| 134 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0115 | 옥천군 | NaN | 2 |
| 135 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0116 | 영동군 | NaN | 2 |
| 136 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0117 | 증평군 | NaN | 2 |
| 137 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0118 | 음성군 | NaN | 2 |
| 138 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0119 | 진천군 | NaN | 2 |
| 139 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0120 | 천안시 | NaN | 2 |
| 140 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0121 | 공주시 | NaN | 2 |
| 141 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0122 | 보령시 | NaN | 2 |
| 142 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0123 | 계룡시 | NaN | 2 |
| 143 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0124 | 아산시 | NaN | 2 |
| 144 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0125 | 금산군 | NaN | 2 |
| 145 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0126 | 서산시 | NaN | 2 |
| 146 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0127 | 논산시 | NaN | 2 |
| 147 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0128 | 당진시 | NaN | 2 |
| 148 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0129 | 부여군 | NaN | 2 |
| 149 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0130 | 연기군 | NaN | 2 |
| 150 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0131 | 서천군 | NaN | 2 |
| 151 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0132 | 청양군 | NaN | 2 |
| 152 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0133 | 홍성군 | NaN | 2 |
| 153 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0134 | 예산군 | NaN | 2 |
| 154 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0135 | 태안군 | NaN | 2 |
| 155 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0136 | 당진군 | NaN | 2 |
| 156 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0137 | 전주시 | Jeonju-si | 2 |
| 157 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0138 | 조치원읍 | Jochiwon-eup | 2 |
| 158 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0139 | 군산시 | Gunsan-si | 2 |
| 159 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0140 | 익산시 | Iksan-si | 2 |
| 160 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0141 | 정읍시 | Jeongeup-si | 2 |
| 161 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0142 | 남원시 | Namwon-si | 2 |
| 162 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0143 | 김제시 | Gimje-si | 2 |
| 163 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0144 | 완주군 | Wanju-gun | 2 |
| 164 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0145 | 진안군 | Jinan-gun | 2 |
| 165 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0146 | 무주군 | Muju-gun | 2 |
| 166 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0147 | 장수군 | Jangsu-gun | 2 |
| 167 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0148 | 임실군 | Imsil-gun | 2 |
| 168 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0149 | 순창군 | Sunchang-gun | 2 |
| 169 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0150 | 고창군 | Gochang-gun | 2 |
| 170 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0151 | 부안군 | Buan-gun | 2 |
| 171 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0152 | 목포시 | Mokpo-si | 2 |
| 172 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0153 | 여수시 | Yeosu-si | 2 |
| 173 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0154 | 순천시 | Suncheon-si | 2 |
| 174 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0155 | 나주시 | Naju-si | 2 |
| 175 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0156 | 광양시 | Gwangyang-si | 2 |
| 176 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0157 | 담양군 | Damyang-gun | 2 |
| 177 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0158 | 곡성군 | Gokseong-gun | 2 |
| 178 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0159 | 구례군 | Gurye-gun | 2 |
| 179 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0160 | 고흥군 | Goheung-gun | 2 |
| 180 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0161 | 보성군 | Boseong-gun | 2 |
| 181 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0162 | 화순군 | Hwasun-gun | 2 |
| 182 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0163 | 장흥군 | Jangheung-gun | 2 |
| 183 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0164 | 강진군 | Gangjin-gun | 2 |
| 184 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0165 | 해남군 | Haenam-gun | 2 |
| 185 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0166 | 영암군 | Yeongam-gun | 2 |
| 186 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0167 | 무안군 | Muan-gun | 2 |
| 187 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0168 | 함평군 | Hampyeong-gun | 2 |
| 188 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0169 | 영광군 | Yeonggwang-gun | 2 |
| 189 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0170 | 장성군 | Jangseong-gun | 2 |
| 190 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0171 | 완도군 | Wando-gun | 2 |
| 191 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0172 | 진도군 | Jindo-gun | 2 |
| 192 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0173 | 신안군 | Sinan-gun | 2 |
| 193 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0174 | 포항시 | Pohang-si | 2 |
| 194 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0175 | 경주시 | Gyeongju-si | 2 |
| 195 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0176 | 김천시 | Gimcheon-si | 2 |
| 196 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0177 | 안동시 | Andong-si | 2 |
| 197 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0178 | 구미시 | Gumi-si | 2 |
| 198 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0179 | 영주시 | Yeongju-si | 2 |
| 199 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0180 | 영천시 | Yeongcheon-si | 2 |
| 200 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0181 | 상주시 | Sangju-si | 2 |
| 201 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0182 | 문경시 | Mungyeong-si | 2 |
| 202 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0183 | 경산시 | Gyeongsan-si | 2 |
| 203 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0184 | 군위군 | Gunwi-gun | 2 |
| 204 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0185 | 의성군 | Uiseong-gun | 2 |
| 205 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0186 | 청송군 | Cheongsong-gun | 2 |
| 206 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0187 | 영양군 | Yeongyang-gun | 2 |
| 207 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0188 | 영덕군 | Yeongdeok-gun | 2 |
| 208 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0189 | 청도군 | Cheongdo-gun | 2 |
| 209 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0190 | 고령군 | Goryeong-gun | 2 |
| 210 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0191 | 성주군 | Seongju-gun | 2 |
| 211 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0192 | 칠곡군 | Chilgok-gun | 2 |
| 212 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0193 | 예천군 | Yecheon-gun | 2 |
| 213 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0194 | 봉화군 | Bonghwa-gun | 2 |
| 214 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0195 | 울진군 | Uljin-gun | 2 |
| 215 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0196 | 울릉군 | Ulleung-gun | 2 |
| 216 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0197 | 창원시 | Changwon-si | 2 |
| 217 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0198 | 진주시 | Jinju-si | 2 |
| 218 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0199 | 마산시 | Masan-si | 2 |
| 219 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0200 | 통영시 | Tongyeong-si | 2 |
| 220 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0201 | 사천시 | Sacheon-si | 2 |
| 221 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0202 | 진해시 | Jinhae-si | 2 |
| 222 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0203 | 김해시 | Gimhae-si | 2 |
| 223 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0204 | 밀양시 | Miryang-si | 2 |
| 224 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0205 | 거제시 | Geoje-si | 2 |
| 225 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0206 | 양산시 | Yangsan-si | 2 |
| 226 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0207 | 의령군 | Uiryeong-gun | 2 |
| 227 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0208 | 함안군 | Haman-gun | 2 |
| 228 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0209 | 창녕군 | Changnyeong-gun | 2 |
| 229 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0210 | 남해군 | Namhae-gun | 2 |
| 230 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0211 | 하동군 | Hadong-gun | 2 |
| 231 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0212 | 산청군 | Sancheong-gun | 2 |
| 232 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0213 | 함양군 | Hamyang-gun | 2 |
| 233 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0214 | 거창군 | Geochang-gun | 2 |
| 234 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0215 | 합천군 | Hapcheon-gun | 2 |
| 235 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0216 | 제주시 | Jeju-si | 2 |
| 236 | 101 | DT_1YL202001E | 13101871087B | 시군구 | SiGunGu | 13102871087B.0217 | 서귀포시 | Seogwipo-si | 2 |
통계표 조회하기
api.get_data() 메서드의 첫 번째 인자로 ‘통계자료’를 지정한다. 미분양현황_종합 통계표를 조회를 위해 위에서 복사해둔 값들을 순서대로 api.get_data()의 인자로 입력한다. itmId의 값으로 선택 항목을 직접 나열해도 되지만 전체 선택 시 ‘ALL’이라는 값을 입력하면 된다.
df = api.get_data(
"통계자료",
orgId="101",
tblId="DT_1YL202001E",
objL1="ALL",
objL2="ALL",
itmId="ALL",
prdSe="M",
startPrdDe="202205",
endPrdDe="202211",
)
df.head()
| 기관ID | 통계표ID | 통계표명 | 분류명1 | 분류영문명1 | 분류값명1 | 분류값영문명1 | 분류값ID1 | 분류명2 | 분류영문명2 | 분류값명2 | 분류값영문명2 | 분류값ID2 | 항목ID | 항목명 | 항목영문명 | 단위명 | 단위영문명 | 수록주기 | 수록시점 | 수치값 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 101 | DT_1YL202001E | 미분양주택현황(시도/시/군/구) | 구분 | SiGunGu | 서울 | Seoul | 13102871087A.0003 | 시군구 | SiGunGu | 계 | NaN | 13102871087B.0002 | 13103871087T1 | 미분양현황 | Unsold Housing | 호 | House | M | 202205 | 688 |
| 1 | 101 | DT_1YL202001E | 미분양주택현황(시도/시/군/구) | 구분 | SiGunGu | 서울 | Seoul | 13102871087A.0003 | 시군구 | SiGunGu | 계 | NaN | 13102871087B.0002 | 13103871087T1 | 미분양현황 | Unsold Housing | 호 | House | M | 202206 | 719 |
| 2 | 101 | DT_1YL202001E | 미분양주택현황(시도/시/군/구) | 구분 | SiGunGu | 서울 | Seoul | 13102871087A.0003 | 시군구 | SiGunGu | 계 | NaN | 13102871087B.0002 | 13103871087T1 | 미분양현황 | Unsold Housing | 호 | House | M | 202207 | 592 |
| 3 | 101 | DT_1YL202001E | 미분양주택현황(시도/시/군/구) | 구분 | SiGunGu | 서울 | Seoul | 13102871087A.0003 | 시군구 | SiGunGu | 계 | NaN | 13102871087B.0002 | 13103871087T1 | 미분양현황 | Unsold Housing | 호 | House | M | 202208 | 610 |
| 4 | 101 | DT_1YL202001E | 미분양주택현황(시도/시/군/구) | 구분 | SiGunGu | 서울 | Seoul | 13102871087A.0003 | 시군구 | SiGunGu | 계 | NaN | 13102871087B.0002 | 13103871087T1 | 미분양현황 | Unsold Housing | 호 | House | M | 202209 | 719 |
피벗 테이블 만들기
통계표 조회 결과를 아래와 같이 원하는 형태로 재구조화하여 분석 목적에 맞게 사용하면 된다.
target = df.loc[df['분류값명2']=='계']
target['수록시점'] = pd.to_datetime(target['수록시점'], format="%Y%m")
target['수치값'] = pd.to_numeric(target['수치값'])
pv = target.pivot(index=["수록시점"], columns=["분류값명1","분류값명2"], values="수치값")
newCols = list(map(lambda x: x[0]+"_"+x[1], pv.columns))
pv.columns = newCols
pv = pv.reset_index()
pv['수록시점'] = pd.to_datetime(pv['수록시점'], format="%Y%m")
for col in pv.columns[1:]:
pv[col] = pd.to_numeric(pv[col])
pv = pv.set_index("수록시점")
pv
| 서울_계 | 부산_계 | 대구_계 | 인천_계 | 광주_계 | 대전_계 | 울산_계 | 경기_계 | 강원_계 | 충북_계 | 충남_계 | 전북_계 | 전남_계 | 경북_계 | 경남_계 | 제주_계 | 세종_계 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 수록시점 | |||||||||||||||||
| 2022-05-01 | 688 | 1220 | 6816 | 426 | 46 | 460 | 641 | 2449 | 1242 | 1088 | 1386 | 107 | 2327 | 5369 | 1979 | 1119 | 12 |
| 2022-06-01 | 719 | 1267 | 6718 | 418 | 198 | 523 | 627 | 3319 | 1303 | 862 | 1326 | 103 | 2585 | 4823 | 2044 | 1063 | 12 |
| 2022-07-01 | 592 | 1503 | 7523 | 544 | 198 | 509 | 788 | 3393 | 1239 | 885 | 1406 | 178 | 2534 | 6517 | 2238 | 1227 | 10 |
| 2022-08-01 | 610 | 1799 | 8301 | 1222 | 198 | 668 | 775 | 3180 | 1348 | 619 | 1386 | 157 | 2503 | 6693 | 2042 | 1213 | 8 |
| 2022-09-01 | 719 | 1973 | 10539 | 1541 | 163 | 1430 | 1426 | 5553 | 1262 | 1107 | 2418 | 621 | 2627 | 6520 | 2401 | 1299 | 5 |
| 2022-10-01 | 866 | 2514 | 10830 | 1666 | 161 | 1374 | 1414 | 5080 | 2287 | 1732 | 2840 | 1383 | 2797 | 6369 | 4176 | 1722 | 6 |
| 2022-11-01 | 865 | 2574 | 11700 | 2471 | 161 | 1853 | 2999 | 7037 | 2365 | 2632 | 5046 | 1951 | 2925 | 7667 | 4076 | 1699 | 6 |
시각화
import plotly.express as px
fig = px.line(target,
x="수록시점",
y="수치값",
color='분류값영문명1')
fig
참고
- Python으로 KOSIS 데이터 조회하기
- KOSIS 국가통계포털 Open API 가이드
- KOSIS 공유서비스
- PublicDataReader 깃허브 저장소
- PublicDataReader 사용자 모임
댓글남기기