부동산 실거래가를 공공데이터에서 제공하는 API로 다운로드를 받았는데 그럴 필요가 없다는 사실을 알아서 충격이였다.
국토교통부에서 실거래가 공개시스템이 있는데 기간을 설정하면 특정날짜에 실거래가 데이터를 다운로드 받을 수 있다. 실제로 다운로드 받은 데이터와 API를 통해 다운로드 받은 데이터의 개수가 다른것을 확인하니 어디 쪽을 믿어야 하나... 일단 데이터를 다운로드 받고 나서 아래와 같이 파일을 읽으면 된다. 맥에서는 encoding을 `cp949`로 해줘야 한다는것! 처음 header를 찾는 곳을 똑똑하게 할 수 있겠지만 그닥 중요하지 않으니... 아래 코드를
f = open("/Users/Direcision/Desktop/아파트(매매)__실거래가_20191211233713.csv","r", encoding='cp949')
lines = f.readlines()
cols = lines[15][:-1]
cols = cols.split("\"")
cols = list(filter(lambda x: (x != '') & (x != ',') ,cols))
data = lines[16:]
rows = []
for d in data:
d = d[:-1].split("\"")
d = list(filter(lambda x: (x != '') & (x != ',') ,d))
rows.append(d)
df = pd.DataFrame(rows, columns=cols)
의 영상을 보니 주택거래량이 줄어들고 있다고 얘기를 하고 있다. 정말 집값은 오르는데 실제로 거래가 안되고 있을까? 유투브에서도 많은 유투버들이 집가격은 오르고 있는데 거래가 되고 있지 않다고 말한다. 어느정도 거래가 이루어졌고 올해 2019년에는 정말 거래가 많이 이루어지지 않았는지 확인을 해보자! 생각해보니 아파트 실거래 데이터가 분양받은것도 포함이 되어있나?.. 연도별 아파트 공급 물량도 확인해보면 좋을것 같다.
서울특별시 연도별 거래량을 살펴보면 아래와 같다.
년도
거래량
2016
110,222
2017
105,091
2018
81,392,
2019
52,125
약간의 누락이 있어보이긴하지만 편차가 그렇게 크지 않다... 지금 http://rtdown.molit.go.kr/ 의 사이트에서 다운받아서 살펴보니 약간의 누락이 있었다! 역시 데이터는 수집도 중요하지만 유효성 체크가 중요하다!!! 어쨋든
2016년에 비해서 2019년은 절반의 거래량이 발생했고, 2018년인 작년과 비교해도 약 36%가 줄어들었다. 집값만 오르고 정말 부동산 시장은 얼었다는 말이다. 이 빙판에서 누가 넘어지지 않느냐의 싸움이 아닌가 싶다.
seaborn은 matplotlib를 기반으로 작성한 라이브러리이고, pandas와 함께 사용할때 훌륭하다. 일단 시각화를 할때는 여러가지의 변수들의 관계를 어떻게 표현을 쉽게 하느냐가 중요한데 그런 dataset-oriented API를 제공하기 때문에 쉽게 작성이 가능하다.
서울에서 2017년, 2018년, 2019년 3년동안 가장 많은 거래수가 있었던 동은 어디일까? 거래수가 많은 동별로 매매건수 TOP 20을 뽑아보았다. 데이터는 공공데이터포털에서 아파트 실거래 매매이다. 과연 어디서 가장 많은 거래가 이루어졌을까? 3년간 서울에서는 총 238,608건의 아파트 실거래가 이루어졌다.
2017년에는 10,5091, 2018년에는 81,392, 그리고 2019년에는 52,125의 거래가 이루어졌다. 2017년 부터 거래수가 약 20%, 30%정도 감소를 하고 있는것을 볼 수 있다.
그렇다면 가장 많은 거래가 있었던 동은 어디였을까? 아래는 전체 서울특별시의 법정동에 속해있는 동의 거래건수를 그래프로 나타낸 결과입니다. 1위에 잇는 동은 약 9000건의 거래가 있었고, 제일 낮은 거래수는 1로 나타나고 있다.
바로 상계동이다. 상계동은 노원구에 속하고 있으며 강북에 위치하고 있다. 상계동 역시 거래건수는 2017년부터 서서히 감소하고 있는 추세이다. 년도별로 거래건수가 거의 모든 동보다 높게 나타나고 있다.
그 외에 Top 20에 속한 법정동은 아래와 같다. 상계동은 2위인 중계동보다 약 1.6배 더 많은 거래를 나타내고 있다.
법정동
거래수
상계동
9018
중계동
5598
신정동
5151
구로동
4498
봉천동
4410
창동
4286
목동
3758
월계동
3637
잠실동
3379
서초동
3230
화곡동
3156
공릉동
3155
신림동
3119
미아동
2920
신내동
2639
시흥동
2584
신월동
2580
길음동
2579
정릉동
2467
방화동
2448
반면 거래량이 1개인 동은 총 10개의 동이 있으며 아래와 같다.
법정동
거래수
예장동
1
신교동
1
오장동
1
능동
1
수송동
1
부암동
1
필동1가
1
구수동
1
필동3가
1
정동
1
구기동
2
혜화동
2
청파동1가
2
미근동
2
동교동
2
갈월동
2
옥인동
3
동선동3가
3
동선동5가
3
삼선동5가
3
3년동안 거래수가 1인 동이 있다는게 정말 신기할다름... 갈수록 점점 거래의 건이 준다는것은 어떻게 해석할수 있을까? 지금 지식에서는 서울의 집주인들이 집가격이 더 오를것이라고 생각하기 때문에 아직은 내놓지 못하고 갖고 있는걸까? 수요는 많을텐데 공급이 없어서 그런걸까? 볼수록 궁금한 부동산의 세계 차근차근 살펴보자
서울 마포에 있는 한 아파트입니다.
지난 7월 전용면적 84㎡ 기준 매매가는 13억 5천만 원이었지만, 지난달 실거래가 15억 3천만 원을 기록했습니다.
4개월 사이 매매가가 2억 원 가까이 뛴 겁니다.
다른 신축 아파트도 상황이 비슷한데, 84㎡ 기준 매매가가 17억 원을 넘은 곳도 있습니다
라는 기사가 나왔다. 7월, 11월 실제 매매 가격이 13억 5천에서 15억 3천으로 오른 아파트가 있을까?
e편한세상마포리버파크의 아파트 시세를 보면 월별로 가격이 상승하는것을 볼수 있다. 특히 평당 거래액은 평균으로는 1881.613456 으로 나타난다.
물론 월별로 평균 평당거래액을 확인해봐도 가격이 상승하는 것을 볼 수 있다. 6월에는 한건의 거래액이 있었는데 이때는 평당거래액이 평소보다 저렴하게 거래되었다.
e편한세상마포리버파크의 경우에는 매매되는 평수가 2가지 타입이다. 두가 타입에 대해서 평당거래액의 차트를 그려보면 아래와 같다.
위 데이터에서 평수별 데이터만 보아도 확실히 눈에 더 잘들어온다. 위에서 6월의 거래의 경우 25평수에 대한 거래 이고, 18평에 대한 거래는 없다. 결과적으로 보면 평수별 평당거래액의 차이가 존재하기 때문에 아파트 전체의 평당거래액의 평균으로 살펴보는것은 오류가 있다는 것을 확인할 수 있었다. 위 차트를 보면 평당 거래액의 평균은 평수가 작을수록 크고, 시간이 지남에따라 점점 상승하는 것을 확실하게 확인이 가능해졌다.
거래금액을 보면 평수가 클수록 좀더 가파르게 상승한것이 확인이 된다. 25평의 경우 6월에 14억에 매매가, 4개월이 지난 10월에는 17억에 매매가 되었다. 분명 인테리어, 층수, 향 여러가지의 변수가 있겠지만 4개월동안 3억이라는 아파트 가격이 상승한게 말이 되는가... 위 기사에서는 4개월간 2억이 올랐다는 기사인데, 살펴보면 실제로는 3억이 오른 아파트가 있다. 더 큰 가격이 상승한 아파트가 있겠지만 오늘은 랜덤하게 고른 e편한 세상 마포리버파크에 대해서 알아보았다.
dataframe에서 데이터 읽을때는 iterator를 이용해서 불필요한 데이터는 메모리에 올리지 않는게 좋다. 데이터를 다 메모리에 읽은 이후에 filter를 통해서 걸러내도 좋지만, 데이터가 크면 이 역시도 무리가 있을수 있으니 다음과 같이 iterator=True와 chunksize=10000을 지정해서 메모리에 올리는 방법을 선택하는게 좋다.
import pandas as pd
iter_csv = pd.read_csv('data_in/data.txt', iterator=True, chunksize=1000, delimiter='\t', names=cols)
df = pd.concat([chunk[~np.isnan(chunk['cols'])] for chunk in iter_csv])
df = df.fillna('')