728x90
반응형
시작에 앞서
해당 내용은 <파이썬으로 데이터 주무르기> -민형기 저, BJPUBLIC 출판사 의 내용을 토대로 작성되었습니다.
보다 자세한 내용은 해당 교재를 확인하여 주시기 바랍니다.
기존 작업 내용
서울시 주유 가격 상하위 10개 주유소 각각 저장 하기
주유 가격 상위 10개 주유소를 oil_price_top10 이름으로 저장하기
oil_price_top10 = station.sort_values(by='가격', ascending=False).head(10)
oil_price_top10
주유 가격 하위 10개 주유소를 oil_price_bottom10 이름으로 저장하기
oil_price_bottom10 = station.sort_values(by='가격', ascending=True).head(10)
oil_price_bottom10
주유소 가격 상하위 10개 업체 위도, 경도 정보 읽어오기
Google Maps API Key 입력
gmaps_key = "본인의 API Key"
gmaps = googlemaps.Client(key=gmaps_key)
주유소 가격 상위 10개 주유소에 대해 위도, 경도 정보 읽어오기
※ 혹시 알 수 없는 문제로 에러가 나는 것에 대비하기 위하여 try-except 구문 사용
(try 구문을 실행하다가 에러가 나면 except 구문에서 지정된 코드를 실행 - 이 구문에서는 NaN 저장하도록 함)
from tqdm import tqdm_notebook
lat = []
lng = []
for n in tqdm_notebook(oil_price_top10.index):
try:
tmp_add = str(oil_price_top10['주소'][n]).split('(')[0]
tmp_map = gmaps.geocode(tmp_add)
tmp_loc = tmp_map[0].get('geometry')
lat.append(tmp_loc['location']['lat'])
lng.append(tmp_loc['location']['lng'])
except:
lat.append(np.nan)
lng.append(np.nan)
print("Here is nan!")
oil_price_top10['lat'] = lat
oil_price_top10['lng'] = lng
oil_price_top10
마찬가지로, 하위 가격 10개 업체의 경도, 위도 정보도 읽어온다
lat = []
lng = []
for n in tqdm_notebook(oil_price_bottom10.index):
try:
tmp_add = str(oil_price_bottom10['주소'][n]).split('(')[0]
tmp_map = gmaps.geocode(tmp_add)
tmp_loc = tmp_map[0].get('geometry')
lat.append(tmp_loc['location']['lat'])
lng.append(tmp_loc['location']['lng'])
except:
lat.append(np.nan)
lng.append(np.nan)
print("Here is nan!")
oil_price_bottom10['lat'] = lat
oil_price_bottom10['lng'] = lng
oil_price_bottom10
앞서 위도, 경도 읽어올 때 사용했던 에러가 나면 NaN으로 처리한 것에 대해 notnull 명령을 이용해서 NaN이 아닐때만 지도에 표기하도록 한다
※ 들여쓰기가 맞지 않으면 오류가 나니 주의!
map = folium.Map(location=[37.5202, 126.975], zoom_start=10.5)
for n in oil_price_top10.index:
if pd.notnull(oil_price_top10['lat'][n]):
folium.CircleMarker([oil_price_top10['lat'][n], oil_price_top10['lng'][n]],
radius=15, color='#CD3181', fill_color='#CD3181').add_to(map)
for n in oil_price_bottom10.index:
if pd.notnull(oil_price_bottom10['lat'][n]):
folium.CircleMarker([oil_price_bottom10['lat'][n], oil_price_bottom10['lng'][n]],
radius=15, color='#CD3186cc', fill_color='#CD3186cc').add_to(map)
map
728x90
반응형
'[파이썬 Projects] > <파이썬 데이터 분석>' 카테고리의 다른 글
[파이썬] 우리나라 인구 소멸 위기 지역 분석 - 2 (2) | 2024.04.30 |
---|---|
[파이썬] 우리나라 인구 소멸 위기 지역 분석 - 1 (0) | 2024.04.29 |
[파이썬] 주유소 가격 비교하기 - 3 (0) | 2024.04.29 |
[파이썬] 주유소 가격 비교하기 - 2 (0) | 2024.04.29 |
[파이썬] 주유소 가격 비교하기 - 1 (0) | 2024.04.20 |