Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 그래프탐색
- xmltodict
- 재귀
- 우선순위큐
- 백준
- Geocoding
- 구현
- 공공데이터
- 수학
- dp
- TF-IDF
- 비트마스킹
- 그래프이론
- geopy
- 그리디
- 지진대피소
- 전처리
- 유사도
- NLP
- GroupBy
- 분할정복
- 너비우선탐색
- 깊이우선탐색
- 유클리드
- 자연어처리
- 건축물대장정보
- pandas
- 누적합
- cosine
- 코사인유사도
Archives
- Today
- Total
정리용
[geocoding] 파이썬 geopy를 이용한 주소 위경도로 변환 본문
이전글 : https://pyjac.tistory.com/61
[openAPI] 공공데이터 - 건축물대장정보 (xmltodict)
0. 준비물 (1) 시군구 / 법정동 코드 정보 https://www.code.go.kr/index.do 행정표준코드 관리시스템 www.code.go.kr (2) 공공데이터 인증키 - 방법 생략 - (3) 라이브러리 설치 !pip install xmltodict 1. 데..
pyjac.tistory.com
1. csv 파일 불러오기
이전글에서 생성한 csv파일을 불러온다
import pandas as pd
df = pd.read_csv('/content/drive/MyDrive/csv/건축물대장정보.csv')
2. 라이브러리 설치
geopy 라이브러리를 인스톨해주고 디폴트 지역을 남한으로 설정한다.
!pip install geopy
from geopy.geocoders import Nominatim
from geopy.distance import geodesic
geolocator = Nominatim(user_agent='South Korea')
geopy 는 입력된 주소에 대한 위경도를 추출하는 기능을 포함하고 있으며
사용 예시는 다음과 같다
# 예시
geo = geo_local.geocode("서울특별시 서대문구 통일로9안길 28")
print(geo.latitude)
print(geo.longitude)
>>> 37.5660715
>>> 126.9654782
3. 라이브러리 활용
위와 같은 작업은 바로 데이터 프레임에 적용할 수 없으므로
(1) geocode 생성 과 (2) 위경도 분리 두 가지로 나누어 작업한다.
해당 csv는 약 2만3천개의 행을 가지는 데이터로 코렙 작업이 time out이 발생하지만
아래 방법을 통해 해결이 가능하다.
구글 코랩 (Google colab)의 런타임 연결 끊김을 방지하는 방법
구글 코랩 (Google colab)의 런타임 연결 끊김을 방지하는 방법에 대한 내용입니다.
teddylee777.github.io
(1) geocode 생성
df['x_y'] = df['newPlatPlc'].apply(geolocator.geocode)
df
ㅗㅗ
(2) 위경도 분리
apply와 lambda 함수를 활용해 위도['lat']와 경도['lon'] 컬럼을 따로 생성하고 원래 컬럼['x_y']을 삭제한다.
ddf['lat'] = ddf['x_y'].apply(lambda x: x.latitude if x != None else None)
ddf['lon'] = ddf['x_y'].apply(lambda x: x.longitude if x != None else None)
ddf = ddf.drop(['x_y'], axis=1)
ddf
4. csv 저장 & 코맨트
ddf.to_csv('geo.csv',encoding='utf-8-sig')
csv로 저장하고 작업을 완료한다.
geocode를 생성할 때 고작 2만개의 데이터를 돌리는데 몇시간이 걸렸다. (geocoding 자체가 시간이 오래걸린다.)
tqdm 같은 진행상황을 시각화 해주는 라이브러리를 적용하면 좋을거같다.
'프로젝트' 카테고리의 다른 글
dd (0) | 2022.02.22 |
---|---|
[geocoding] 네이버 API를 이용한 주소 위경도로 변환 (0) | 2022.02.14 |
[openAPI] 공공데이터 - 건축물대장정보 (xmltodict) (0) | 2022.02.10 |
[geocoding] 구글드라이브를 이용한 주소 위경도로 변환 (0) | 2021.12.14 |
Comments