geopy 모듈은 지리적 좌표(위도, 경도)를 기반으로 거리 및 위치 정보를 다룰 수 있는 라이브러리로.
특히 위도(latitude), 경도(longitude) 데이터를 활용하여 두 지점 간의 실제 거리(km)를 계산할 때 많이 사용됨.
geopy가 필요한 이유
1. Haversine 공식보다 더 정확한 거리 계산 가능
- 지구가 완벽한 구체가 아니기 때문에, Haversine 공식은 오차가 발생할 수 있어.
- geopy.distance.geodesic()은 지구의 타원체 모델(WGS-84)을 사용하여 보다 정확한 거리(km)를 반환해.
2. 위도/경도를 이용한 실시간 거리 계산 가능
- 고객(lat, long)과 가맹점(merch_lat, merch_long) 간의 거리를 구하는 데 사용 가능.
- 지도 데이터를 활용하는 머신러닝 및 GIS(지리정보시스템) 분석에서 필수적.
3. 간편한 사용법
- geopy.distance.geodesic((위도1, 경도1), (위도2, 경도2)).kilometers
- 한 줄 코드로 두 지점 간 거리(km)를 쉽게 구할 수 있음.
제가 설치후 해보니 몇번은 실행이 되는데 다른 시각화 그래프시도 하다보니 geopy모듈이 작동이 오류가 났습니다.
결국 해결하기 까지 아래 모든 과정을 적었습니다. 원인을 알고보니 아무것도 아니였습니다. ;;
그럼 아나콘다 프롬프트창에서 geopy설치까지 순서대로 적겠습니다.
아나콘다 프롬프트를 실행한다.
conda env list는 현재 가상환경을 출력한다. 현재 활성화되어 있는 환경에 * 표시가 있다
conda activate pandas 명령을 실행하면 추가한 pandas가상환경을 활성화 한다.
그럼 아래 처럼 앞에 (pandas)부분이 표시되어 현재 활성화된 가상환경을 확인할 수 있다.
파이썬 패키지 관리자(pip)를 통해 ipykernel패키지를 pandas 가상환경에 설치한다.
pip install geopy명령을 입력하고 실행 한번만 해주면됨.
(아래 아나콘다 설치 글 중간에 pip사용 내용이 있으니 참고하세요)
https://nesaram-health-1story.tistory.com/157
아나콘다 다운로드 설치
파이썬을 따로 설치 해도 되지만 아나콘다 배포판을 설치하면 판다스와 넘파이 등 데이터 분석에 필요한 필수 라이브러리들이 자동으로 기본 설치된다. 다운로드 하는것을 추천하며 아래는 가
nesaram-health-1story.tistory.com
아래 처럼 명령어 실행후 해당 pandas * 표시 확인후 설치 진행할것
pip install geopy 으로 실행
이후 아나콘다 네비게이션에서 pandas로 선택하고 JupyterLab실행
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 491134 entries, 0 to 491133
Data columns (total 18 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 trans_time 491134 non-null datetime64[ns]
1 merchant 491134 non-null object
2 category 491134 non-null object
3 amt 491134 non-null float64
4 gender 491134 non-null object
5 city 491134 non-null object
6 state 491134 non-null object
7 lat 491134 non-null float64
8 long 491134 non-null float64
9 city_pop 491134 non-null int64
10 job 491134 non-null object
11 birthday 491134 non-null datetime64[ns]
12 unix_time 491134 non-null int64
13 merch_lat 491134 non-null float64
14 merch_long 491134 non-null float64
15 is_fraud 491134 non-null int64
16 age 491134 non-null int32
17 distance 491134 non-null float64
dtypes: datetime64[ns](2), float64(6), int32(1), int64(3), object(6)
memory usage: 65.6+ MB
에러없이 거리 계산 geopy모듈 을 사용하여 새로운 distance 컬럼이 생성된걸 확인할 수 있다.
몇번은 실행이 되는데 다른 시각화 그래프시도 하다보니 geopy모듈이 작동이 끊히네요 뭔가 충돌하는거 같습니다.
여전히 오류메시지가 뜨네요.
그래서 다시 확인해 보니 아래 new_df를 잘못표기했습니다. dating_df로 표기했더니 오류가 없어지고 위에 distance라는 컬럼을 생성했다는걸 보여주네요. 코드를 적어내려갈때 왠만하면 순차적으로 하는걸 추천 합니다. 중간에 데이터프레임 명이 바뀌기도 하는데 저의 경우는 dating_df를 나중에 new_df로 수정해준 걸 다시 중간에 로드해서 체크하다 놓친거 같습니다. 결국 geopy 설치해서 실행에는 아무문제가 없었습니다.