728x90
https://www.data.go.kr/data/15058747/openapi.do
1. 부동산에 관심이 많아 이번 포스팅을 시작으로 전국 부동산 분석은 해보고자 함
2. 우선 가장 중요한 데이터를 가져와야 하는데, 내가 살고 있는 인천 시단위부터 시작하고자 함. 나중에 추후 전국단위로 넓히겠음
3. 데이터는 맨 위 국토교통부_아파트매매 실거래자료 공공데이터 오픈 API에서 가지고 옴
4. API에서 특정 지역 데이터를 가지고 오기 위해서는 우선 인천의 코드가 필요함. 그건 아래 코드에서 추출
import pandas as pd
import requests
from bs4 import BeautifulSoup as bs
url='https://inasie.github.io/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D/5/'
headers={'useragent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36'}
response = requests.get(url, headers=headers)
html = bs(response.text, "lxml")
table = html.select("table")
table = pd.read_html(str(table))
gu=table[0]
gu['법정동코드']=gu['법정동코드'].astype(str)
se=gu[~gu['법정동코드'].str.contains('000')]
se=se[se['법정동주소'].str.contains('인천광역시')]
5. 코드가 있고, API를 사용할 수 있는 인증키만 있으면 아래 코드와 같이 3년치 데이터를 가지고 올 수 있음.
from urllib.request import urlopen
from urllib.parse import urlencode, unquote, quote_plus
import urllib
import requests
import pandas as pd
import xmltodict
import json
from datetime import datetime
import requests
mo=[m for m in range(202101,202113)]
mo.extend([m for m in range(202201,202213)])
mo.extend([m for m in range(202301,202313)])
data=[]
api='Your API KEY'
for i in see['법정동코드']:
for a in mo:
url = f'http://openapi.molit.go.kr/OpenAPI_ToolInstallPackage/service/rest/RTMSOBJSvc/getRTMSDataSvcAptTradeDev?serviceKey={api}'
queryParams = '&' + urlencode({quote_plus('pageNo') : 1, quote_plus('numOfRows') : '1000',
quote_plus('LAWD_CD') : i, quote_plus('DEAL_YMD') : a})
url2 = url + queryParams
response = urlopen(url2)
results = response.read().decode("utf-8")
results_to_json = xmltodict.parse(results)
print(results_to_json['response']['body']['totalCount'])
try:
rows = json.loads(json.dumps(results_to_json))
data.extend(rows['response']['body']['items']['item'])
print(a)
except:
print('오류')
incheon=pd.DataFrame(data)
6. 위 코드에서 저장한 incheon 변수를 출력하면 아래와 같은 결과가 나타남
7. 최근 3년 동안 단순하게 거래금액 기준으로 어느 아파트가 가장 비싼지 알아봤음
8. 21년 9월에 거래된 48층 88평 더샵센트러파크가 45억으로 가장 비싸게 거래된 아파트로 나타남
incheon['거래금액']=incheon['거래금액'].apply(lambda x:int(x.replace(',','')))
inc=incheon.sort_values(by='거래금액',ascending=False)[['거래금액','법정동','아파트','년','월','층','전용면적']]
inc['평수']=inc['전용면적'].apply(lambda x: round(float(x)*0.3025,2))
inc['아파트 거래연도']=inc.apply(lambda row: row['아파트']+' '+row['년'],axis=1)
inc10=inc.head(10).reset_index()
import matplotlib.pyplot as plt
plt.rcParams["font.family"] = 'Malgun Gothic'
plt.rcParams["font.size"] = 12
plt.figure(figsize=(16,8))
plt.figure(figsize=(12,10))
sns.barplot(x='거래금액',y=inc10['아파트 거래연도'].tolist(),data=inc10)
9. 그리고 다 어떻게 Top10 아파트가 다 송도인지... 이해는 간다
728x90
반응형
'Real Estate Data > 아파트' 카테고리의 다른 글
아파트 파이썬 데이터 분석 시리즈 1 - 4 [2023년 구별 아파트 거래량 & 평당 실거래가 추이] (0) | 2024.02.20 |
---|---|
아파트 파이썬 데이터 분석 시리즈 1 - 3 [인천 법정동 세대수 대비 거래량 비중] (1) | 2024.02.15 |
아파트 파이썬 데이터 분석 시리즈 1 - 2 [2021년 ~ 2023년 인천시 월별 아파트 거래건수 및 평당 실거래가] (1) | 2024.02.14 |
댓글