import folium
import pandas as pd
import os
import re
import numpy as np
from folium import plugins
print(os.listdir())
dat = pd.read_csv("seoul10_food.csv")
dat.shape
['01_01_htmlstart.html', '01_start.html', '20230501_dataAssignment.ipynb', '20230508_02_class.ipynb', '20230508_naver_movie.ipynb', '230508_class_python.py', '230509_class_pandas.ipynb', 'apply.ipynb', 'california_location.html', 'class2304_01_vsCode.ipynb', 'class230501.py', 'class230502.py', 'dog01.jpg', 'dog02.jpg', 'flask_test01 copy.py', 'flask_test01.py', 'map.html', 'seoul10_food.csv', 'seoul_10food.html', 'seoul_10food.ipynb', 'seoul_10food_folium01.py', 'seoul_food19_location.html', 'static', 'templates']
(10, 3)
# 데이터 전처리
dat['위도'] = dat['위도'].str.extract('(\d+\.\d+)').astype("float32")
dat['경도'] = dat['경도'].str.extract('(\d+\.\d+)').astype("float32")
# print(df_name.loc[1:5], df_lati.loc[1:5], df_long.loc[1:5] )
dat
맛집 | 위도 | 경도 | |
---|---|---|---|
0 | 미미카페 (서울 강남구 청담동 83-14) | 37.525578 | 127.042259 |
1 | 봉은사랑 (서울 서초구 반포4동 62-4) | 37.499229 | 127.006157 |
2 | 삼육면옥 (서울 종로구 종로5가 19-1) | 37.570190 | 126.986336 |
3 | 화로상회 (서울 강남구 청담동 128-4) | 37.524548 | 127.041542 |
4 | 서울우유아이스크림 (서울 중구 을지로1가 148-1) | 37.566151 | 126.982986 |
5 | 버거 박사 (서울 서대문구 창천동 28-2) | 37.558914 | 126.946144 |
6 | 무교동 북어국집 (서울 종로구 무교로 5) | 37.573956 | 126.990540 |
7 | 정돈 (서울 서초구 서초4동 1307-23) | 37.494740 | 127.022034 |
8 | 가양역 족발집 (서울 강서구 가양동 1460-15) | 37.560616 | 126.841187 |
9 | 순남시래기 (서울 서초구 서초3동 1436-18) | 37.486458 | 127.018997 |
df_name = dat['맛집']
df_lati = dat['위도']
df_long = dat['경도']
df_lati
0 37.525578 1 37.499229 2 37.570190 3 37.524548 4 37.566151 5 37.558914 6 37.573956 7 37.494740 8 37.560616 9 37.486458 Name: 위도, dtype: float32
df_lati = list(df_lati)
df_long = list(df_long)
df_loc = np.array([df_lati, df_long]).T
df_loc[0:10]
array([[ 37.52557755, 127.04225922], [ 37.49922943, 127.00615692], [ 37.57019043, 126.98633575], [ 37.52454758, 127.04154205], [ 37.56615067, 126.98298645], [ 37.55891418, 126.9461441 ], [ 37.57395554, 126.99053955], [ 37.49473953, 127.02203369], [ 37.56061554, 126.84118652], [ 37.48645782, 127.01899719]])
house_map = folium.Map(location=[ np.mean( df_lati), np.mean(df_long) ],
zoom_start=6)
df_name = list(df_name)
plugins.MarkerCluster(df_loc, popups=df_name).add_to(house_map)
house_map.save(os.path.join('.', 'seoul_food19_location.html'))
house_map