python folium경기도 의왕시 부동산 실거래가 거래금액 python folium으로 line chart 그래프 차트 그리기
by 뱁새유니버스1. 개요
파이썬을 통해 부동산 실거래가를 공공데이터포털(data.go.kr)로부터 API 호출해오고 folium으로 지도에 마커 표시 및 데이터를 보여주는 것 까지 계속해오고 있습니다.
이번 시간엔 2022년 아파트별 거래금액을 line graph로 보여주는 예제를 작성해보고자 합니다.
2. 내용
(1) 2022년 12월 경기도 의왕시 부동산 실거래가 가져오기
위 개요 페이지에 부동산 실거래가를 가져오는 코드와 동일합니다. 다만, 한가지 차이점은 <아파트와층>이라는 열을 추가했습니다. 같은 아파트에 2건 이상 거래가 발생할 수 있기 때문에 고유값으로 bar chart의 x축을 표현하고자 <아파트와층>이라는 열을 추가했습니다.
import requests
import xmltodict
import pandas as pd
import json
#주소를 입력하면 법정동코드를 갖고 오는 함수이다.
def get_lawd_cd(address):
url = "http://apis.data.go.kr/1741000/StanReginCd/getStanReginCdList"
key = "공공데이터포털 API Key값"
params = {"serviceKey": key, "pageNo": "1", "numOfRows": "3", "type": "json", "locatadd_nm": address}
r = requests.get(url, params=params)
_json = r.json()
results = _json.get("StanReginCd")
if len(results) > 0:
return results[1].get("row", [])[0].get("region_cd")[0:5]
return None
#2022년 12월달 경기도 의왕시 부동산 실거래가 데이터를 가져온다.
LAWD_CD = get_lawd_cd("경기도 의왕시")
DEAL_YMD = "202212"
url = "http://openapi.molit.go.kr:8081/OpenAPI_ToolInstallPackage/service/rest/RTMSOBJSvc/getRTMSDataSvcAptTrade"
key = "공공데이터포털 API Key값"
params = {"serviceKey": key, "LAWD_CD": LAWD_CD, "DEAL_YMD": DEAL_YMD}
req = requests.get(url, params=params)
result = xmltodict.parse(req.text)
items = result.get("response").get("body").get("items").get("item")
#list를 json방식으로 바꾸기
jsonString = json.dumps(items)
df = pd.DataFrame(items)
#거래금액에 쉼표를 제거해야 한다. 그렇지 않으면 bar chart를 표기할 때 숫자로 인식을 못한다.
df['거래금액'] = df.거래금액.str.replace(',', '').astype('int64')
#고유값으로 보여주기 위해 거래금액과 층을 합친다.
#같은 아파트에 거래가 2건 이상일 수 있기 때문이다.
df['아파트와층'] = df['아파트']+df['층']
#df 데이터를 추출해본다.
df
결과는 아래와 같습니다. <아파트와층>이라는 열(Column)이 추가된 것을 확인할 수 있습니다.
(2) folium 지도에 bar chart 팝업이 출력되는 마커 만들기
아래 코드를 복사하여 실행시킵니다. altair를 import합니다.
x축은 <아파트와층>이고 y축은 <거래금액>입니다.
import folium
import altair as alt
import pandas as pd
# altair chart를 만들고 JSON으로 변환한다.
chart = alt.Chart(df).mark_bar().encode(x='아파트와층', y='거래금액')
propChart = chart.to_json()
# folium map을 만든다. 위도 경도는 원하는 곳으로
start_coords = [37.38619010082862,126.98052156518638]
folium_map = folium.Map(
location=start_coords,
zoom_start=16,
width='100%',
height='100%',
)
# altair graph 팝업을 띄우기 위한 마커를 만든다.
propPirceMarker = folium.Marker(
location=start_coords,
radius=20,
color='red',
fill=True,
fill_color='red',
fillOpacity=1.0,
opacity=1.0,
tooltip='실거래가 확인하기',
popup=folium.Popup(max_width="100%").add_child(
folium.VegaLite(propChart, width="100%", height="100%")),
)
# folium 맵에 propPirceMarker를 추가한다.
propPirceMarker.add_to(folium_map)
#마커를 띄운다.
folium_map
결과값은 아래와 같습니다.
이렇게 2022년 12월에 거래된 부동산 실거래가를 아파트를 x축으로 해서 비교 분석해볼 수 있습니다.
3. 마치며
이번 포스팅에선 altair를 import해서 folium 맵에 marker를 통해 popup을 표기하는 것을 해봤습니다.
다음 번엔 어떤 걸 해볼까? 많은 생각이 드네요.ㅎㅎ 한번 직접 활용해보시고 우리 동네 아파트 실거래가를 조회해보는 프로그램을 구현해보는 건 어떨까요?
이 글을 읽는 모든 분들 오늘 하루도 행복하시기 바랍니다.
감사합니다.
반응형
'IT > 파이썬' 카테고리의 다른 글
아나콘다 32bit 가상환경 구축하기 (0) | 2022.12.10 |
---|---|
아나콘다(Anaconda) 다운로드 및 설치하기 파이썬 패키지 프로그램 (0) | 2022.12.10 |
요즘 핫한 경기도 의왕시 아파트 부동산 실거래가 위도 경도 표기 맵핑 아파트 실거래가 보여주기 python folium (0) | 2022.12.08 |
python folium 경기도 의왕시 2022년 부동산 실거래가 조회 및 위경도 표기를 통한 아파트 마커 실시간 데이터 표기 파이썬 폴리엄 (0) | 2022.12.08 |
파이썬으로 현재 날짜 확인하기 import time localtime함수 strftime 함수 예제 (0) | 2022.12.03 |
블로그의 정보
가슴이 웅장해지는 모든것
뱁새유니버스