Applied Data

[부동산 데이터 수집] KOSIS 시군구별 주택 건설 착공 실적(파이썬)

레디코 2024. 1. 15. 22:07

 

국가통계포털의 주택건설 착공실적에 대해 조회하는 방법에 대해 살펴보겠습니다.

1. 국가통계포털 KOSIS의 주택 건설 착공실적 살펴보기

일단 통계포털에 있는 착공실적 관련 통계표를 조회해보겠습니다. 

1) 주택건설 착공실적(월계)

주요 지역별 * 공공부문/지자체/LH/민간부문에 대한 착공실적

2) 주택규모별 주택건설 착공실적(월계)

주요 지역별 * 40m^2 이하, 40~60m^2, 60~85m^2, 85~135m^2, 135m^2 초과에 대한 착공실적

3) 주택유형별 주택건설 착공실적(월계)

주요 지역별 *  단독, 다가구, 다세대, 연립, 아파트 종류

노란 다가구동수기준 합계가 다른 착공물량의 합계와 동일합니다.

파랑색의 합계가 착공물량의 합계와 동일합니다.

 

 

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

아파트에 대한 착공 실적을 보고 싶기 때문에

주택유형별 주택건설 착공에 대해 조회해보겠습니다.

 

1) 통계표ID 조회하기

from PublicDataReader import Kosis

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

df1 = api.get_data(
    "KOSIS통합검색",
    searchNm="주택유형별 주택건설 착공실적",
    )
df1

 

통계표ID가 DT_MLTM_5387으로 나옵니다.

 

2) 통계표ID로 분류값 확인하기

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

각 항목별로 어떻게 구성이 되어있는지를 확인해보았습니다.

 

3) 원하는 조건으로 조회하기

모두 ALL로 두고 조회하면 4만 건 이상 조회되어 오류 메시지가 뜨기 때문에

필요한 데이터로 한정하여 뽑습니다.

(1) 총계, 수도권소계(서울/인천/경기), 지방소계

df_sum = api.get_data (
    "통계자료",
    orgId="116",
    tblId="DT_MLTM_5387",
    objL1="13102766969A.0001+13102766969A.0002+13102766969A.0003+13102766969A.0004+13102766969A.0005+13102766969A.0006",  # 총계, 수도권소계(서울/인천/경기), 지방소계
    objL2="ALL",
    objL3="ALL",
    objL4="13102766969D.0001", #계
    itmId="ALL",
    prdSe="M",
    startPrdDe="202101",
    endPrdDe="202311",

)
df_sum
df_sum = df_sum.astype({'수치값':int})

 

(2) 수도권의 주택형태에 따른 조회

df_sudo = api.get_data (
    "통계자료",
    orgId="116",
    tblId="DT_MLTM_5387",
    objL1="13102766969A.0002",  # 총계, 수도권소계(서울/인천/경기), 지방소계
    objL2="ALL",
    objL3="ALL",
    objL4="13102766969D.0001+13102766969D.0003+13102766969D.0004+13102766969D.0005+13102766969D.0006+13102766969D.0007+13102766969D.0008", #계
    itmId="ALL",
    prdSe="M",
    startPrdDe="202101",
    endPrdDe="202311",

)
df_sudo = df_sudo.astype({'수치값':int})

 

4) 조회한 값을 그래프로 그리기

 

(1) 주요 시도별 착공물량

import plotly.express as px

fig = px.line(df_sum,
              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축 제목과 색상 설정
)

 

21년 12월에 착공실적이 높았는데 수도권 중 경기가 높고 지방소계와 유사한 것을 볼 수 있습니다.

23년 11월에는 수도권소계와 지방소계와 유사한 상황이네요.

(2) 수도권 주택유형별 착공실적

import plotly.express as px

fig = px.line(df_sudo,
              x="수록시점",
              y="수치값",
              color='분류값명2')
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축 제목과 색상 설정
)

 

부동산 활황이었던 21년 12월 착공실적이 크게 튀었고, 이후 23년까지 계속 줄어드는 걸 볼 수 있습니다.

최근 2310~2311월에는 착공량이 증가하는 모습을 보이고 있습니다.

총계의 대부분은 아파트가 차지하고 있네요.