반응형
Python에서 Folium 라이브러리를 사용하여 경도와 위도 좌표를 이용하여 지도를 생성하는 방법은 다음과 같습니다.
- 필요한 라이브러리를 가져옵니다:
import folium import pandas as pd
- CSV 파일을 pandas DataFrame으로 로드합니다:
your_file.csv
부분을 실제 CSV 파일의 경로로 대체해야 합니다. data = pd.read_csv('your_file.csv')
- Folium을 사용하여 기본 지도를 생성합니다. 특정 위도와 경도를 중심으로 설정합니다:
위도
와경도
를 원하는 지도 중심점 좌표로 대체해야 합니다. map = folium.Map(location=[위도, 경도], zoom_start=10)
- DataFrame의 각 행을 반복하며 지도에 마커를 추가합니다:
'위도'
,'경도'
,'이름'
을 CSV 파일의 해당 열 이름으로 대체하거나 열 이름에 맞게 코드를 조정해야 합니다. for index, row in data.iterrows(): folium.Marker([row['위도'], row['경도']], popup=row['이름']).add_to(map)
- 지도를 HTML 파일로 저장합니다:
map.save('map.html')
이제 Python 스크립트를 실행하면 map.html
이라는 HTML 파일이 생성됩니다. 웹 브라우저에서 이 파일을 열어서 지도를 확인할 수 있습니다. 지도의 마커는 CSV 파일에서 가져온 경도와 위도 좌표에 해당하며, 팝업에는 관련 정보가 표시됩니다.
참고: 코드를 실행하기 전에 Python 환경에 Folium 라이브러리가 설치되어 있는지 확인해야 합니다. 필요한 경우 pip install folium
을 사용하여 설치할 수 있습니다.
준비물
최종 코드
import folium
import pandas as pd
# CSV 파일 읽어오기
df = pd.read_csv('지오코딩완료.csv', encoding = "utf-8")
# 지도 생성
m = folium.Map(location=[37.5,127], zoom_start=8)
# FeatureGroup 객체 생성
fg = folium.FeatureGroup(name='Data')
# Marker 객체와 Popup 객체 생성
# 마커 클릭 시 trip열과 name열의 내용을 보여주는 popup이 뜨도록 구현
for index, row in df.iterrows():
marker = folium.Marker(location=[row['latitude'], row['longitude']])
popup = folium.Popup(f'<p><strong>{row["trip"]}</strong></p><p>{row["name"]}</p>', max_width = 500)
marker.add_child(popup)
fg.add_child(marker)
# FeatureGroup 객체를 지도에 추가
m.add_child(fg)
# LayerControl 객체 생성
folium.LayerControl().add_to(m)
# 지도를 HTML 파일로 저장
m.save('data_map.html')
반응형
'🖥️ IT, 컴퓨터 > 🐍 Python' 카테고리의 다른 글
[Python] csv 불러오기 : pd.read_csv("이름", encoding = "인코딩") (0) | 2023.04.14 |
---|---|
[Python] 데이터프레임 내 값들의 종류 파악하기 (unique / drop_duplicates) (0) | 2023.04.13 |
[Python] 표준화하기 with sklearn (0) | 2023.04.13 |
[Python] 분포그래프 그리기 :: sns.distplot() (0) | 2023.04.13 |
[Python] Dataframe에서 숫자 대소관계 만족시키면 호출하기 (0) | 2023.04.13 |
댓글