[python] geopy를 사용하여 주소를 위,경도 값으로 바꾸기 & 위,경도 값을 주소로 바꾸기
import pandas as pd
from pandas import read_csv
from tqdm import trange, notebook # 진행 상황을 나타내주는 좋은 모듈
from geopy.geocoders import Nominatim # 도로명주소 위도 경도 값 추출
df = pd.read_excel('./dataset/세대수.xlsx').fillna("")
df.head()
df = df[0:4000]
df
#주소데이터 전처리 함수
def get_addrs(x):
x1 = x.split(' ')
return " ".join(x1[2:4])
# 주소 전처리, filter를 걸고 해당 행(row)에 대해 원하는 수식들을 적용
df['주소'] = df['도로명주소'].apply(get_addrs)
df
geo_local = Nominatim(user_agent='South Korea')
#위도 반환
def geocoding_lat(address):
try:
geo = geo_local.geocode(address)
return geo.latitude
except:
return 0
#경도 반환
def geocoding_lon(address):
try:
geo = geo_local.geocode(address)
return geo.longitude
except:
return 0
# 변환
df['위도'] = df['주소'].apply(geocoding_lat)
df['경도'] = df['주소'].apply(geocoding_lon)
df.columns
df.filter(['단지명','단지분류', '법정동주소', '도로명주소', '세대수', '위도', '경도'])
df.to_csv(f'전처리 완료 데이터/세대수.csv', index=True, encoding="utf-8-sig")