Folium
Folium 라이브러리를 사용하여 지도 시각화를 할 수 있다.
map = folium.Map( location = [37, 127], zoom_start=7 )
마커 표시하기
for i in maps.index:
# print( maps.loc[i, '위도'], maps.loc[i, '경도'] )
folium.Marker( [ maps.loc[i, '위도'], maps.loc[i, '경도']] ).add_to(map)
위와 같이 마커가 표시되는 것을 확인할 수 있다.
이제 행정구역별 코로나 확진자 사망자를 지도 시각화를 통하여 나타내어 보자.
행정구역별 단계 구분도는 국가 지리 정보원에서 다운받을 수 있다.
!pip install geopandas
import geopandas as gpd
korea = gpd.read_file('/content/drive/MyDrive/2022 FocusOn/00_Old/ENCORE/수업자료 (외부 공개 금지)/한국지도json/Z_NGII_N3A_G0010000.zip', encoding='euc-kr')
korea
일자별 각 지역 확진자수를 모두 누적한 데이터프레임 confirmed_df1, 일자별 각 지역 사망자 수를 모두 누적한 데이터프레임 death_df1을 각각 만들어 보자.
confirmed_df.loc['2022-07-25'][:-1].T
death_df.loc['2022-07-25'][:-1]
그리고 누적 확진자 수를 maps에 추가한다.
death_df.loc['2022-07-25'][:-1]
maps['지역별사망자수'] = death_df.loc['2022-07-25'][:-1].T.rename( index={
'서울':'서울특별시',
'경기':'경기도',
'인천':'인천광역시',
'대구':'대구광역시',
'부산':'부산광역시',
'경남':'경상남도',
'충남':'충청남도',
'경북':'경상북도',
'충북':'충청북도',
'대전':'대전광역시',
'강원':'강원도',
'전북':'전라북도',
'광주':'광주광역시',
'울산':'울산광역시',
'전남':'전라남도',
'제주':'제주특별자치도',
'세종':'세종특별자치시'
})
maps
이후 과정은 강의 자료 유출 방지로 인하여 생략하였습니다. 추후 프로젝트에서 행정구역별 통계 시각화를 통해 완성해 보자.! (본인 깃허브 참고)
네이버 API
네이버 개발자 센터
#-*- coding: utf-8 -*-
import os
import sys
import urllib.request
client_id = "T8Mp931zxMboBxvKwEop"
client_secret = "t0h23ZQRTZ"
url = "https://openapi.naver.com/v1/datalab/search";
body = "{\"startDate\":\"2018-01-01\",\"endDate\":\"2022-07-25\",\"timeUnit\":\"week\",\"keywordGroups\":[{\"groupName\":\"여름휴가\",\"keywords\":[\"피서\",\"바다여행\",\"바다여행\"]},{\"groupName\":\"꽃놀이\",\"keywords\":[\"벚꽃축제\",\"봄꽃\"]}],\"device\":\"pc\",\"ages\":[\"3\",\"4\",\"5\",\"6\"],\"gender\":\"f\"}";
request = urllib.request.Request(url)
request.add_header("X-Naver-Client-Id",client_id)
request.add_header("X-Naver-Client-Secret",client_secret)
request.add_header("Content-Type","application/json")
response = urllib.request.urlopen(request, data=body.encode("utf-8"))
rescode = response.getcode()
if(rescode==200):
response_body = response.read()
print(response_body.decode('utf-8'))
else:
print("Error Code:" + rescode)
카카오 디벨로퍼스 API
-*- coding: utf-8 -*-
import os
import sys
import urllib.request
client_id = "T8Mp931zxMboBxvKwEop"
client_secret = "t0h23ZQRTZ"
url = "https://openapi.naver.com/v1/datalab/search";
body = "{\"startDate\":\"2018-01-01\",\"endDate\":\"2022-07-25\",\"timeUnit\":\"week\",\"keywordGroups\":[{\"groupName\":\"여름휴가\",\"keywords\":[\"피서\",\"바다여행\",\"바다여행\"]},{\"groupName\":\"꽃놀이\",\"keywords\":[\"벚꽃축제\",\"봄꽃\"]}],\"device\":\"pc\",\"ages\":[\"3\",\"4\",\"5\",\"6\"],\"gender\":\"f\"}";
request = urllib.request.Request(url)
request.add_header("X-Naver-Client-Id",client_id)
request.add_header("X-Naver-Client-Secret",client_secret)
request.add_header("Content-Type","application/json")
response = urllib.request.urlopen(request, data=body.encode("utf-8"))
rescode = response.getcode()
if(rescode==200):
response_body = response.read()
print(response_body.decode('utf-8'))
else:
print("Error Code:" + rescode)
url = 'https://openapi.naver.com/v1/datalab/search'
header = {
'X-Naver-Client-Id': client_id,
'X-Naver-Client-Secret': client_secret,
'Content-Type': 'application/json'
}
data = {
'startDate':'2018-01-01',
'endDate':'2022-07-24',
'timeUnit':'week',
'keywordGroups':[
{
'groupName':'꽃놀이',
'keywords':['벚꽃축제', '꽃놀이', '봄여행지', '봄꽃축제']
},
{
'groupName':'피서',
'keywords':['여름여행', '피서', '바다여행', '여름축제']
}
],
'ages':['3', '4', '5', '6', '7', '8']
}
import json
import requests
jsonData = json.dumps(data)
response = requests.post( url, data=jsonData, headers=header )
print( response.status_code )
result = response.json()
원하는 값을 찾아오려면 result.keys()를 통하여 불러올 수 있다.
'플레이데이터 빅데이터 부트캠프 12기 > Python' 카테고리의 다른 글
[플레이데이터 빅데이터 부트캠프]Python 셋(set) 타입 (0) | 2022.09.27 |
---|---|
[플레이데이터 빅데이터 부트캠프]Python 익명 함수 vs 어플라이 함수 (0) | 2022.08.03 |
[플레이데이터 빅데이터 부트캠프]Python Open API 만들기(1) (0) | 2022.07.26 |
[플레이데이터 빅데이터 부트캠프]Python 크롤링, 스크래핑 (0) | 2022.07.25 |
[플레이데이터 빅데이터 부트캠프]Python 데이터 시각화 PLOTLY(2) (0) | 2022.07.25 |