>⛹️♀️ 제로베이스 데이터취업스쿨 15기 스터디노트 21(6.1.)
🗂️ 오늘(6.1.) 수강한 분량
EDA 범죄 5~6, 웹데이터 1
🗂️ EDA 범죄 5~6, 웹데이터 1 핵심 내용 정리
- 서울시 범죄 현황에 대한 지도 시각화
Choropleth
- 색상이나 패턴을 사용하여 특정 통계에 대한 데이터를 사전 정의된 영역과 관련시켜 시각화 한 지도 유형
- 특정 구역에 대한 통계 데이터를 시각화하는데 적절함
my_map = folium.Map(location = [37.5502, 126.982], zoom_start=11, tiles ="stame Toner") folium.Choropleth(geo_data=geo_str, data=crime_anal_norm["강간"], columns=[crime_anal_norm.index, crime_anal_norm["강간"]], key_on="feature.id", fill_color="PuRd", fill_opacity = 0.7, line_opacity = 0.2, legend_name = "정규화된 강간 발생 건수" ).add_to(my_map) my_map
- 검거율 정규화
col = ["살인검거","강도검거","절도검거","강간검거","폭력검거"] tmp = crime_anal_station[col] / crime_anal_station[col].max() #정규화 crime_anal_station["검거"] = np.mean(tmp, axis = 1) #numpy axis = 1 행(가로)를 의미,pandas에서는 열(세로)값! crime_anal_station.tail()
- 경찰서 위치 마커 표기
my_map = folium.Map(location=[37.5502, 126.982], zoom_start=11) for idx, rows in crime_anal_station.iterrows(): folium.Marker(location=[rows["lat"], rows["lng"]]).add_to(my_map) my_map
- 검거에 값을 곱한 뒤 원의 넓이, 색 등 적용
my_map = folium.Map(location=[37.5502, 126.982], zoom_start=11) folium.Choropleth(geo_data=geo_str, data=crime_anal_norm["범죄"], columns=[crime_anal_norm.index, crime_anal_norm["범죄"]], key_on="feature.id", fill_color="PuRd", fill_opacity = 0.7, line_opacity=0.2 ).add_to(my_map) for idx, rows in crime_anal_station.iterrows(): folium.CircleMarker( location=[rows["lat"], rows["lng"]], radius=rows["검거"]*50, popup=rows["구분"]+ " : " +"%.2f"% rows["검거"], color="#3186cc", fill = True, fill_color="#3186cc").add_to(my_map) my_map
- 서울시 범죄 현황 발생 장소 분석
- 추가 검증
crime_loc_raw
로 진행- 장소 + 범죄명에 대한 값을 더함(
np.sum
사용) 후 사용하지 않는 칼럼 제거- 5대 범죄에 대한 내용 정규화 진행
col = ["살인","강도","강간","절도","폭력"] crime_loc_norm = crime_loc / crime_loc.max() #정규화 crime_loc_norm.head() #정규화 확인
crime_loc_norm["종합"] = np.mean(crime_loc_norm, axis=1) #행값으로 채워짐
- heatmap으로 데이터 시각화 진행 :
import seaborm as sns
이 되어있는지 확인 필수crime_loc_norm_sort = crime_loc_norm.sort_values("종합", ascending=False) def drawGraph(): plt.figure(figsize=(10,10)) sns.heatmap(crime_loc_norm_sort, annot=True, fmt="f" #실수형, linewidths=0.5,cmap="RdPu") plt.title("범죄 발생 장소") plt.show() drawGraph()
- Beautiful Soup for web data
- html파일 읽기
-open
: `page=open("파일 위치","r").read()
- 파일명과 함께 읽기(r),쓰기(w)
html.parser
: html을 읽는 엔진 중 하나prettify
: html을 가독성 있게 읽어주는 기능(class를 찾을 시에는 class_로 작성하여 찾기, 파이썬 내 변수여서 오류 발생 가능!!)find_all()
: 지정된 태그를 모두 찾아줌
- soup.p : 처음 발견한 p태그만 출력(=soup.find("p")
)
-soup,find("p",{"class":""outer-text first-item"})
: 특정 데이터 찾기- Beautiful Soup 예제 1 - 네이버 금융
- 파이썬으로 환율 체크 → HTML → 모르면 크롬 개발자 도구 사용
- 크롬 개발자 도구 활용 : 크롬 설정 → 도구 더보기 → 개발자 도구
- 원하는 HTML 태그 위치 찾기 가능 : 예제에서는
<span class="value">
- 웹주소 접근 시
url = "웹주소"
/page = urlopne(url)
👩🚀 스터디 감정 노트
시각화가 파이썬보다 훨~씬 재밌다 잘하는것도 아니고 안되는것도 더 많지만 시각화가 분명하게 보이고 그걸로 내가 뭘 할 수 있는지가 지금까지는 더 다양하게 보이는 것이라 그런건지 몰라도 재밌고 어려운 시각화,,
html까지 배울지는 몰랐는데 옛날에 그래도 한번 본 적 있다고 좀 익숙하다 너,,
[이미지 출처 : 미리캔버스]