기타 IT/Pandas

단독 주택 실거래가 검색 - Python Pandas 이용

Jerry_이정훈 2021. 7. 29. 00:05
728x90

아파트 보다는 타운 하우스 또는 단독에 살고 싶은 욕구가 예전부터 있다. 벌써 5년 정도 되어간다. 산골짜기 타운 하우스 등 집 보러 간 것도 꽤 된다. 하지만 산골짜기도 싸지 않고 한남동으로 출퇴근하는 나에게 선택지는 많지 않다. 

 

핸드폰으로 부동산 검색하는데 내가 원하는 조건으로 검색하는게 그리 편하지 않다. 클릭, 클릭 기반이라 자동 반복이 안된다. GUI 기반의 Window 보다는 명령어, Script 기반을 좋아하는 나에게 답답한 면이 있다. 

 

다행히 요즈음 Python을 배우고 Pandas를 배우니 적용해 볼 꺼리가 있을 것 같았다. (파이썬 생활 프로그래밍 https://ridibooks.com/books/754029371 문과생 분이 쓰신 책이라 보기가 좋았다.) 조금 해보니 나름 보기 좋은 데이터를 금방 뽑는게 가능하다. 물론, (결론부터 말하면) 데이터 나왔다고 집 사는게  가능하지는 않지만.

 

데이터 뽑은 과정과 코드를 공유해 본다. 누군가에게 작은 도움이 되었으면 하는 마음으로. 코드는 10줄도 안된다. ^^ 많은게 그렇지만 마냥 어렵게 보이는 것들도 알고 나면 참으로 간단하다. 

 

파이썬 공부하다 포기하다 5년도 넘은 것 같은데 처음으로 의미있는 프로젝트를 하게 되었다. 웃긴 건 if, for, 함수 등 아무 것도 사용하지 않았다는 거다. 그동안 무얼 한 건지 ㅎㅎ

 

먼저, 데이터는 국토부 사이트에서 다운로드 받는다. 구글에 ‘실거래가조회’ 라고만 검색하면 된다.



(이런 거 보면 우리 나라가 나름 선진국인 거 느낀다. (명박이 같은 놈들 해 먹지 못하도록) 정보 공개가 잘 되어 있다.)

 

나는 21년 1월 ~ 7월, CSV 파일, 단독/다가구(매매), 경기도 자료를 원하니 해당 조건으로 Filtering 해서 자료 다운로드 받는다.

아마 내가 Python을 모르면 이 자료를 가지고 엑셀로 Filtering 등의 기능을 클릭, 클릭 하는 수고를 하였을 건데, 배우고 있는 Python을 응용해 본다.

 

사용한 코드와 CSV 자료는 아래 Github 에서 다운 가능하다.

https://github.com/junghoon2/pandas.git

 

GitHub - junghoon2/pandas

Contribute to junghoon2/pandas development by creating an account on GitHub.

github.com

 프레임워크는 Python 자료 분석 시 사용하는 Jupyter Notebook을 이용한다. 

import pandas as pd
df = pd.read_csv(‘01.house_price_2021.csv’)
df

Pandas 사용하면 간단히 csv 파일을 읽어 들일 수 있다. python하면 조금 복잡한데 훨씬 간편하다.

 

올해만 벌써 10,121 건의 거래가 발생했다. 아파트는 이것 보다 몇배는 많겠지 ㅎㅎ

df = df.rename(columns={'거래금액(만원)': '거래금액'})

Column 이름으로 ‘거래금액(만원)’ 이라는 괄호를 사용하고 있다. 괄호는 나중에 데이터 처리하기 불편하니 rename 하여 괄호를 제거한다. 

df.거래금액 = df.거래금액.str.replace(',', '').astype('int64')

금액 기준으로 sorting 할건데 금액에 85,000 쉼표가 들어있다. 이러면 python에서 숫자가 아닌 문자(str)로 인식하니 쉼표를 제거한다.

city = '용인|성남|하남|남양주|광주'
df=df[df.시군구.str.contains(city)]

내가 원하는 지역은 서울 기준 남쪽, 동쪽이다. 해당 지역 기준으로 filtering 한다.

 

Filtering 하니 10,121 중 2,461 건으로 줄었다.

df = df [(df.거래금액 > 50000) & (df.거래금액 < 100000) & (df.건축년도 > 1999) & (df.주택유형 == '단독')]

(여전히, 비현실적이기는 하지만) 금액을 5억과 10억 이내로 줄인다. 그래도 최근 20년 이내의 집으로 하고 다가구는 제외하고 단독만 선택한다. 

 

그러니 427건으로 줄었다. 

 

내가 원하는 최종 자료가 Filtering 되었다. 이제 이걸 가지고 자료를 본다.

 

이게 코딩의 강력함이다. 앞으로 이런 조건을 수백개 만들 수 있다. 단순히 몇 줄만 수정하면 내가 원하는 데이터를 계속 뽑을 수 있다. 주택이 아니라 땅도 가능하고 아파트도 가능하다. 이걸 핸드폰으로 하면 시간이 똑같이 드는데 코딩으로 하면 시간이 훨씬 줄어든다.

df_count = df.시군구.value_counts()

어떤 지역에서 실거래 내역이 있는지 횟수(value_counts) 기준으로 보기 위해서 새로운 데이터를 만든다.

df_count.to_csv('12.house_count_2021.csv', encoding='utf-8-sig')
df.to_csv('2021house_price.csv', encoding='utf-8-sig')
# utf-8-sig 해야 한글 깨지지 않는다.

Pandas는 CSV 형태로 데이터 Export도 쉽다. 

 

 

내가 원하는 수준의 데이터가 나왔다. 5년 정도 파이썬 공부한 것 같은데 처음으로 의미있는 Project를 한 것 같다. 

 

데이터를 조금 자세히 본다. 예상은 했지만 단독 주택은 역시 산넘고 물건너 동네 위주로 거래가 활발하다.

 

카카오 지도 맵에서 가장 거래가 많은 ‘‘능평리’를 검색하면 아래와 같다. 한남동으로 대중 교통으로 출퇴근해야 하는 나에게 저기는 너무 멀다. 분당 율동 공원을 지나 안쪽으로 들어가야 한다.

신현리, 능평리는 이미 가 본 적이 있는데, 타운하우스 등이 참으로 많은 동네다. 나쁘지는 않지만 지하철도 없고 분당 가는 도로가 하나 뿐인데 여기가 출퇴근 시간에 많이 막힌다고 해서 탈락이다. 

 

회사를 판교를 옮겨야 좀 더 선택지가 많을 것 같다. 서울 한남동 출근은 난이도가 높다. 

 

사실 단독에 살려고 하면 다 이렇다. 산넘고 물건너라 대중 교통은 거의 어렵다. 교통이 좋으면 당연히 엄청 비싸다. 지하철이 근처만 있는 곳이면 15억, 20억 넘는 건 우스웠다. 

 

그래도 사람 마음이라는 게 안 그렇다. 어딘가 있겠지 하는 마음으로 계속 삽질해 본다. ㅎㅎ (IT 특성이 참 그런 것 같다.) 이리저리 하다 보면 무언가 있겠지 하는 마음으로 조금씩 새롭게 해보는.  

 

좀 더 자세히 자료를 본다. 가능 후보로 죽전동, 영덕동(흥덕지구)이 있다. 비록 거래가 1건, 3건에 불과하지만 여기만 되어도 그래도 한남동 한번에 가는 버스가 있어서 괜찮다. ㅎㅎ

 

6937 경기도 용인수지구 죽전동 1*** 단독 8m미만 196.89 141.5 202104 26 81586 2020 푸른솔로

 

6800 경기도 용인기흥구 영덕동 1*** 단독 25m미만 99.68 204 202106 1 80000 2016 트리플힐스로

6801 경기도 용인기흥구 영덕동 1*** 단독 8m미만 129.98 220 202102 16 85000 2016 트리플힐스로

6805 경기도 용인기흥구 영덕동 9** 단독 12m미만 201.21 272.1 202105 8 87000 2006 중부대로55번길

 

네이버 부동산으로 죽전 검색하면 매물이 없는데 그래도 올해 거래 내역이 있으니 나올 가능성도 있고 직접 가서 부동산에 올해 거래 내역이 있으니 물어 볼 수 있다. 이 정도면 그래도 노가다 한 보람이 있다. 

(네이버 부동산은 단독과 다가구 분리해서 검색이 안되어 불편하다)

 

여기까지 단독 주택으로 검색한 내용이다. 단독 주택으로 마땅한 게 없으니 땅 실거래 내역도 검색하고 아파트(싫기는 하지만)도 검색해 봐야 겠다. Pandas 사용하면 대부분 동일하니 시간을 훨씬 절약 할 수 있다. 

(이건 내가 게을러지지 않으면 다음 포스팅으로)

반응형