In [ ]:
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']
Out[ ]:
(10, 3)
In [ ]:
# 데이터 전처리
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
Out[ ]:
맛집 위도 경도
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
In [ ]:
df_name = dat['맛집']
df_lati = dat['위도']
df_long = dat['경도']

df_lati
Out[ ]:
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
In [ ]:
df_lati = list(df_lati)
df_long = list(df_long)
df_loc = np.array([df_lati, df_long]).T

df_loc[0:10]
Out[ ]:
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]])
In [ ]:
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
Out[ ]:
Make this Notebook Trusted to load map: File -> Trust Notebook
In [ ]: