EDA (2) - 범죄현황 (2)

Jasmine·2023년 7월 7일

EDA

목록 보기
7/9

한글대응코드

  • matplotlib의 한글폰트 문제 잡기
  • 윈도우(Malgun Gothic) / 맥(Arial Unicode MS)

범죄현황데이터 시각화

pairplot으로 상관관계 살펴보기

  • pairplot으로 강도, 살인, 폭력에 대한 상관관계 나타내기

  • 인구수, CCTV와 살인, 강도의 상관관계 나타내기

  • 인구수, CCTV와 살인/폭력 검거율의 관계

  • 인구수, CCTV와 절도/강도 검거율의 관계

heatmap

  • 검거율만 가지고 heatmap 그려보기
  • 대표값: 정규화된 '검거'를 기준으로 sorting
  • 범죄발생 건수로 heatmap
  • '범죄'를 기준으로 정렬
  • 저장

Folium 지도 시각화

  • 지도시각화 도구 중 하나
  • 크롬에서 가장 구동이 잘됨
  • 위도, 경도를 알려주면 됨
  • 지도를 html로 저장 가능 (그림x)
  • folium.Map() : 지도 그리기
    • tiles : 스타일 지정
    • zoom_start : 처음에 뜨는 줌 배율
# tiles option

- "OpenStreetMap"
- "Mapbox Bright" (Limited levels of zoom for free tiles)
- "Mapbox Control Room" (Limited levels of zoom for free tiles)
- "Stamen" (Terrain, Toner, and Watercolor)
- "Cloudmade" (Must pass API key)
- "Mapbox" (Must pass API key)
- "CartoDB" (positron and dark_matter)
  • folium.Marker(옵션).add_to(m) : 마커 생성
    • popup : 팝업마커
    • i : 기울이기, b : 볼드체
folium.Marker(
    location, 
    popup="",       # 마우스 클릭했을 때
    tooltip="",     # 마우스 댔을 때
    icon="", 
    draggable, 
    **kwargs,
)
.add_to(m)
  • folium.Circle()
    folium.CircleMarker()
  • folium.LatLngPopup()
    : 지도를 마우스로 클릭했을 때 위도 경도 정보를 반환해줍니다
  • folium.Choropleth()
    - json 파일 → 지역의 경계선과 id를 구현
import json

state_data = pd.read_csv("../data/02. US_Unemployment_Oct2012.csv")

m = folium.Map([43, -102], zoom_start=3)    # 미국 지도 좌표

folium.Choropleth(
    geo_data="../data/02. us-states.json", # 경계선 좌표값이 담긴 데이터
    data=state_data,                     # Series or DataFrame 
    columns=["State", "Unemployment"],   # DataFrame columns 
    key_on="feature.id",
    # 위의 4개가 가장 중요하고, 아래는 옵션
    fill_color="BuPu",
    fill_opacity=0.5, # 0~1 
    line_opacity=0.5, # 0~1
    legend_name="Unemployment rate (%)"    # 범례 이름
).add_to(m)

m

서울시범죄현황 지도시각화

  • 서울의 json 파일 활용
  • 마지막에 저장한 파일 불러오기
  • 2016년 서울의 살인발생건수 지도시각화
  • 성범죄 발생건수
  • 5대 범죄 발생건수
  • 인구수 대비 범죄 발생 건수
  • 경찰서별 검거에 대한 지도 시각화
    '검거' 컬럼 만들기 (정규화 연산을 한 검거의 평균)

    numpy axis=1 행(가로)
    pandas axis=1 열(세로)

  • 경찰서 위치를 지도에 표시
    iterrows() 사용해 반복문으로 위도,경도 찍기
  • 검거율에 따른 서클마커 추가
  • 구별 범죄 현황과 경찰서별 검거율 함께 표시

서울시범죄현황 장소별 분석

profile
데이터직무를 위한 공부 기록

0개의 댓글