- 부동산 데이터는 국토교통부의 '실거래가 공개시스템' 을 통해 구할 수 있습니다. http://rtdown.molit.go.kr/
- 주소→좌표 변환방법은 카카오의 rest_api 를 이용하여 사용합니다. https://developers.kakao.com/docs/latest/ko/kakaologin/rest-api
모듈설정
from urllib.parse import urlparse
import numpy as np
import pandas as pd
import requests
메인 코드1. 주소→좌표 변환함수
temp = {'address': None, #중복되는 도로명 주소가 올 경우 재사용 사용하기 위함
'data': None}
def getLatLng(address):
if temp['address'] == address: #직전에 계산한값이면 결과값을 재활용
return temp['data']
url = 'https://dapi.kakao.com/v2/local/search/address.json?query=' + address
rest_api_key = '36c2***********************************' #Kakao 앱 고유의 key 입력
header = {'Authorization':'KakaoAK '+rest_api_key}
result = requests.get(urlparse(url).geturl(), headers=header).json()
try:
match_first = result['documents'][0]['address']
lat = float(match_first['y'])
lng = float(match_first['x'])
temp['address'] = address
temp['data'] = list([lat, lng])
return temp['data']
except IndexError:
return 0
메인 코드2. 부동산 데이터(.xlsx) 입력 후 좌표데이터를 추가하여 저장
input_df = pd.read_excel("아파트(매매)_실거래가_20211217033910.xlsx", skiprows=15, header=1, usecols=[0,4,5,8,11]) #필요한 데이터 slicing
lat_lng_df = pd.DataFrame(columns=['lat', 'lng'])
test = 0
for i in input_df['도로명']:
test += 1
getlist = getLatLng(i)
if getlist != 0:
item = pd.DataFrame([[getlist[0], getlist[1]]], columns=['lat', 'lng'])
lat_lng_df = lat_lng_df.append(item, ignore_index=True)
else:
item = pd.DataFrame([[np.nan, np.nan]], columns=['lat', 'lng'])
lat_lng_df = lat_lng_df.append(item, ignore_index=True)
print(test, '/', len(input_df)) #진행상황 출력
output_df = pd.concat([input_df, lat_lng_df], axis=1)
print(output_df)
output_df.to_excel('아파트(테스트).xlsx')


입력 및 출력데이터
아파트(매매)_실거래가_20211217033910.xlsx0.50MB 아파트(테스트).xlsx0.39MB
Matplot을 이용한 그래프(Graph) 출력
더보기

matplotlib를 이용한 부동산 거래위치 출력
- 좌표 데이터를 가지고 있으면, 기계학습 등 데이터 분석에 사용 가능합니다.
import pandas as pd
import matplotlib.pyplot as plt
input_df = pd.read_excel("아파트(테스트).xlsx", usecols=[3,4,6,7]) #필요한 데이터 slicing
print(input_df)
x = input_df['lng']
y = input_df['lat']
plt.scatter(x, y)
plt.show()

'Python' 카테고리의 다른 글
| 부동산 엑셀(.xlsx)데이터2. KNN Regression을 이용한 데이터분석 (0) | 2021.12.22 |
|---|---|
| 데이터 크롤링(crawling) 후 엑셀(.xlsx)파일로 저장 (0) | 2021.12.16 |