Applied Data

[부동산 데이터 수집] KOSIS 시군구별 미분양 현황 및 준공후 미분양 데이터 조회(파이썬)

레디코 2024. 1. 13. 23:59

 

 
부동산 데이터 중 중요하게 봐야하는 요소 중 하나가
미분양 데이터인데요.
 
국가통계포털(KOSIS)에 시군구별 미분양 데이터를 확인할 수 있는데요.
API로 조회가 가능합니다.
 

1. 국가통계포털 KOSIS 가입 후 활용 신청하기

국가통계포털(KOSIS) 공유서비스에 접속하고 가입

https://kosis.kr/openapi/index/index.jsp
국가통계포털(KOSIS) 공유서비스에 들어가서 가입합니다.

OPEN API 인증키 신청을 눌러서 신청을 진행합니다.
진행하여 사용자 인증키를 받습니다.
이 인증키를 계속 사용하게 됩니다.

 

2. 국가통계포털 KOSIS 미분양주택현황 보고 살펴보기

미분양주택현황보고

규모별 미분양현황, 공사완료 후 미분양현황, 시군구별 미분양현황, 미분양현황_종합에 대해
자료가 있습니다.
 

미분양주택현황보고 데이터 종류

1) 규모별 미분양현황

규모별 미분양현황은 공공부문과 민간부분에 대한 값이 나오고, 전용면적별로 데이터가 제공됩니다.
 

2) 공사완료후 미분양현황

준공 후 미분양 데이터는 분양 쪽에서 상당히 중요한 데이터입니다.

3) 시군구별 미분양 현황

시군구별은 광역시 아래 레벨 구역의 자료까지 제공합니다.
 

4) 미분양현황_종합

종합판이 존재합니다.

 

3. KOSIS Python으로 데이터 조회하기

저는 시군구 미분양 데이터와 준공후 미분양 데이터를 조회해보겠습니다. 

1) 시군구 미분양 데이터

(1) KOSIS통합검색으로 키워드를 넣어 통계표ID를 확인합니다.

from PublicDataReader import Kosis

api = Kosis(service_key)

df = api.get_data(
    "KOSIS통합검색",
    searchNm="미분양주택현황(시도/시/군/구)",
    )
df

 
여기서는 통계표ID가  DT_1YL202004E입니다.

 
(2) 분류값명을 통해 데이터 범위를 확인할 수 있습니다.

item = api.get_data(
    "통계표설명",
    "분류항목",
    orgId="101",
    tblId="DT_1YL202004E",
)
item.head()

 
(3) 해당 통계 자료의 선택 범위를 결정하여 조회합니다.

df = api.get_data(
    "통계자료",
    orgId="101",
    tblId="DT_1YL202004E",
    objL1="ALL",# 특정 분류값명만 조회하고 싶으면 분류값ID 입력 ex) 부산 "13102871087A.0004"
    objL2="ALL",
    itmId="ALL",
    prdSe="M",
    startPrdDe="202303",
    endPrdDe="202312",
)
df

 
(4) 분류값명 변경하기
분류값명1과 2의 경우, 아래와 같이 구성되어있습니다.

 
분류값명1에 전국을 조회했을 때 , 서울의 미분양과 수치가 같음을 확인하였습니다.

 
전국을 서울로 변경합니다.

 
(5) plotly 그래프 그리기

import plotly.express as px

fig = px.line(df_level1,
              x="수록시점",
              y="수치값",
              color='지역분류')
fig.update_layout(
 title=dict(
        text='<b>주요 시도별 미분양 현황</b>',
        x=0.28,
        y=0.87,
        font=dict(
            family="Arial",
            size=25,
            color="black"))
,
hoverlabel=dict(
    bgcolor='white',
    font_size=15,
),
hovermode="x unified",
template='plotly_white',
xaxis_tickangle=90,
yaxis_tickformat = ',',
legend = dict(orientation = 'h', xanchor = "center", x = 0.85, y= 1.1),
barmode='group'

,xaxis=dict(title_text='기준년월', title_font=dict(color='gray'))  # x축 제목과 색상 설정
,yaxis=dict(title_text='미분양', title_font=dict(color='gray')) # y축 제목과 색상 설정
)

 

 
총계를 살펴보면 대구가 가장 미분양이 높은 현황을 확인할 수 있습니다.
 

2) 공사완료 후 미분양 현황

 
(1) KOSIS통합검색으로 공사완료후 미분양 현황 → 통계표ID 확인 DT_MLTM_5328

# 인스턴스 생성하기
api = Kosis(service_key)


df = api.get_data(
    "KOSIS통합검색",
    searchNm="공사완료후 미분양현황",
    )
df

통계표 ID는 다음과 같네요. DT_MLTM_5328
 
(2) 조회범위 확인하기

item = api.get_data(
    "통계표설명",
    "분류항목",
    orgId="116",
    tblId="DT_MLTM_5328",
)
item.head()

URL을 확인해보니 objL4까지 입력이 필요한 통계표ID입니다.
 

 

모두 ALL로 가지고 오면 1달 조차 가지고 올 수 없는 상황이기 때문에 조절해서 가지고 와야 합니다.
시군구의 계, 전용면적의 계에 대해서 가지고 오겠습니다.

 
(3)  전체 지역과 합계, 계로 조회하기

df = api.get_data (
    "통계자료",
    orgId="116",
    tblId="DT_MLTM_5328",
    objL1="ALL", 
    objL2="13102871088B.0001+13102871088B.0002", # 합계, 계
    objL3="13102871088C.0001", # 계
    objL4="13102871088D.0001", #
    itmId="ALL",
    prdSe="M",
    startPrdDe="202201",
    endPrdDe="202311",

)
df_raw = df[df['분류값명1']!= '전국']
df_raw = df[df['분류값명1'].isin(['서울','경기','인천']) ]

 

실제 KOSIS 통계표와 추출한 데이터를 확인하면 동일함을 볼 수 있습니다.
 
(4) 그래프 그리기

import plotly.express as px

fig = px.line(df_raw,
              x="수록시점",
              y="수치값",
              color='분류값명1')
fig.update_layout(
 title=dict(
        text='<b>주요 시도별 준공 후 미분양 현황</b>',
        x=0.28,
        y=0.87,
        font=dict(
            family="Arial",
            size=25,
            color="black"))
,
hoverlabel=dict(
    bgcolor='white',
    font_size=15,
),
hovermode="x unified",
template='plotly_white',
xaxis_tickangle=90,
yaxis_tickformat = ',',
legend = dict(orientation = 'h', xanchor = "center", x = 0.85, y= 1.1),
legend_title_text='지역',
barmode='group'

,xaxis=dict(title_text='기준년월', title_font=dict(color='gray'))  # x축 제목과 색상 설정
,yaxis=dict(title_text='준공 후 미분양', title_font=dict(color='gray')) # y축 제목과 색상 설정
)

 

여러 지역 중 서울, 경기, 인천을 중심으로
그래프를 그렸습니다.
준공 후 미분양이 세 지역 모두
전반적으로 늘어나고 있는 추세입니다.

데이터를 보는 것도 보는 것이지만
지표를 해석할 줄도 알아야하는데
그런 부분도 다음 포스팅부터 다루도록 하겠습니다.