[부동산 API3] 전월세 실거래가 현황(17년1월~18년1월, 서울&경기지역) 분석하기

목차

    2018. 2. 17. 06:30

    오늘은 공공데이터 포털에서 끌어온 전월세API 데이터를 가지고 전월세 거래건수에 대해 알아보려고 한다.

    그전에 알아본 내용을 잠깐 정리해보자. 먼저, 공공데이터 포털에서 부동산 거래데이터가 API형태로 제공되는 것을 확인하였다.(참조: 공공데이터 활용하여 전월세 실거래가 가져오기 )
    다음으로 이 오픈API를 이용하여 전월세 실거래가를 데이터 베이스 형태로 저장하였다. (참조: 오픈API를 이용하여 부동산DB 만들기)



    관련 글 보기
    연회비 무료(없는) 신용카드는 어떤 카드일까?
    블로그에 프로그래밍 코드 이쁘게 올리기 - 칼라스크립터
    마인드맵 그리기 - 알마인드 사용법(단축키) 알아보기 (MINDMAP)


    전월세 거래현황은 이미 뉴스를 통해서 많이 알려져있기 때문에, 전체 지역을 알아보는 것은 크게 의미가 없을 것 같다.그래서 서울, 경기 지역에 좀 더 집중해서 알아보려고 한다.


    우선, 전에 sqlite형태로 적재한 데이터를 불러오도록 하겠다.


    # coding=utf-8

    #

    # 부동산 전월세 api 사용하기

    #


    import pandas as pd

    import matplotlib

    import matplotlib.pyplot as plt

    import matplotlib.font_manager as fm


    import sqlite3



    if __name__ == "__main__":


        con = sqlite3.connect("./data/real_trade.db")

        cur = con.cursor()

        query = cur.execute("SELECT * From lent")

        cols = [column[0] for column in query.description]

        sil_trade = pd.DataFrame.from_records(data=query.fetchall(), columns=cols)

        con.close()


    전월세 거래건수를 그래프로 그려보려고 한다. 파이썬에서 그래프를 그릴 때는 matplotlib를 이용한다. 그런데 그래프를 그리고 보니 한글이 깨져서 나오지 않는 문제가 발생했다. 조금 알아보니 폰트 때문에 이런 문제가 발생했다고 한다. 그래서 한글이 가능한 나눔고딕 폰트를 사용하였다. matplotlib에서 발생하는 한글 깨짐 현상에 대해서는 아래 글을 참조하면 더 자세히 내용을 알 수 있을 것이다.
    (참조: matplotlib 에서 한글 출력하기)


        #한글 가능 폰트 불러오기

        fm.get_fontconfig_fonts()

        font_location = '/Library/Fonts/NanumBarunGothicBold.ttf'

        font_name = fm.FontProperties(fname=font_location).get_name()

        matplotlib.rc('font', family=font_name)


    그래프를 그리기 전에, null값이 있는지 확인해보고 데이터 타입을 알아 보았다. 이전에 저장할 때 text로 저장하여, object로 저장돼 있다. 이에 월세가격과 보증금가격을 숫자로 변환하였다.

    그리고 년월을 합쳐서 숫자로 변환하였더니, 정렬이 잘 되지 않아서 그래프가 제대로 그려지지 않았다. 그래서 그냥 1부터 13까지로 변환하였다.


        sil_trade.describe()

        sil_trade.dtypes


        sil_trade["mo_price"] = sil_trade["mo_price"].str.replace(" ","")

        sil_trade["mo_price"] = sil_trade["mo_price"].str.replace(",", "")

        sil_trade["mo_price"]=sil_trade["mo_price"].astype(int)


        sil_trade["bo_price"] = sil_trade["bo_price"].str.replace(" ","")

        sil_trade["bo_price"] = sil_trade["bo_price"].str.replace(",", "")

        sil_trade["bo_price"]=sil_trade["bo_price"].astype(int)


        sil_trade["is_j"]="월세"

        sil_trade.ix[sil_trade["mo_price"]==0,"is_j"]="전세"


        sil_trade["ym"]=sil_trade["year"].astype(int)*100+sil_trade["month"].astype(int)


    추가로 API로 적재한 데이터에 지역코드에 대한 시도명과 시군구명이 적재되어 있지 않아서, 추가로 해당 값들을 붙여주었다. 키값을 지역코드로 해서 merge로 병합하였다.



        code=pd.read_excel("KIKcd_B.20180122.xlsx")

        code_seo=code[(code["시도명"]=="서울특별시") | (code["시도명"]=="경기도")]

        code_seo=code_seo[code_seo["읍면동명"].isnull()==True]

        code_seo = code_seo[code_seo["시군구명"].isnull() == False]

        code_seo["ji_code"] = code_seo["법정동코드"].astype(str).str[0:5]

        code_seo=code_seo[["ji_code","시도명","시군구명"]]


        sil_trade_1=pd.merge(sil_trade,code_seo,on="ji_code",how="left")

        temp = sil_trade_1.groupby(["시도명","ym", "is_j"]).size().reset_index(name='counts')


        temp["ym"]=temp["ym"]-201700

        temp.ix[temp["ym"]==101,"ym"]=13

        temp.ix[temp["ym"] == 102, "ym"] = 14


    이제 전월세 거래건수를 그래프로 그려보려고 한다. x축에 들어가는 값을 index에 넣어주는 것이 그래프 그리기에 편리하다. 그래서 년월에 해당하는 데이터를 인덱스에 넣고, line 그래프를 그려보았다. pandas dataframe는 "."이후에 그래프에 함수를 이용해 바로 그릴 수 있어 편리하다.


        temp.set_index("ym",inplace=True)
        temp.groupby(["시도명","is_j"])["counts"].plot(legend=True,grid=True,xticks=temp.index)


    실제 그래프를 그리는 작업은 1줄이면 된다.^^ 데이터값을 그래프에 표시하려고 했는데, 텍스트 값을 그래프 위에 뿌려줘야 가능했다. 그래서 거기까지는 하지 말고, 이 정도에서 만족하기로 했다.

    전월세_거래건수_추이

    (전월세 거래건수 추이)

    1이 17년1월이고요. 그 뒤로 17년2월, 17년3월 .... 이렇게 된다. 2~3월이 이사철이기 때문에, 해당월에 거래건수가 많은 것은 당연한 것 같다. 이후로 계속 거래건수가 감소하는데 월세보다 전세의 감소가 더 가파른 것을 알 수 있었다. 최근에 월세로 많이 전환되는 추세라고 하는 데 틀린 말은 아닌 것 같다. 특이한 부분으로 9월에 경기도 월세 거래건수가 조금 늘었다. 경기도 지역에 어떤 이벤트가 있었던 것으로 추측해 볼 수 있다.
    (참조: 서울 전·월세거래, 지난달 '역대 최저')

    전세 거래가 추이

    (전세 거래가 추이)


    해당 월에 어떤 거래가 있었느냐에 따라서 가격의 추이는 달라질 수 있겠지만, 11월이후 최근 2개월간 전세가격이 조금 떨어졌다. 그렇다고는 하지만 17년 이후로 계속 상승추세였기 때문에 크게 의미가 있겠나 하는 생각도 든다. 전년도 2~3월에 전세가가 하락추세였기 때문에, 당분간은 전세가가 계속 하락세였으면 좋겠다. 요즘 전세가는 정말 살인적이다,
    (참조: 설 연휴 쉬어가나…서울 아파트 매매·전세가 동시 약세)


    오늘은 이렇게 전월세 거래건수 및 가격에 대한 추이를 알아보았다. 공공데이터 포털에 부동산 데이터를 가지고 더 재밌는 작업을 해 볼 수도 있을 것 같다.

    추가로 아파트 매매가격과 거래건수에 대해서 알아보았다. 해당 작업이 궁금하다면 아래 링크를 참조해 보자. (참조: 아파트 매매가격 및 거래건수 추이, 17년5월 ~ 18년2월)