[Python] geopy를 사용하여 주소를 위,경도 값으로 바꾸기 & 위,경도 값을 주소로 바꾸기

Idel·2023년 1월 5일
0

[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")

0개의 댓글