기사로 많이 나오는 강남3구가 범죄로부터 안전하다고 말할 수 있는지 한번 확인해 보자.
구글 검색창에서 '서울시 관서별 5대 범죄 현황'을 검색하여 포털에 접속
포털에 접속하여 '서울시 관서별 5대 범죄 현황' 파일을 다운로드 하기(2016년도 CSV 파일로 다운받기)
숫자값들이 콤마(,)를 사용하고 있어서 문자로 인식될 수 있다.
천단위 구분 (thousands=',') 이라고 알려주면 콤마를 제거하고 숫자형으로 읽는다.
info() 명령으로 데이터 확인하기
특정 컬럼에서 unique조사
'죄종'에서 NaN만 추출하여 보자.
NaN을 정리하기전엔 하나의 데이터 크기가 2MB였지만 정리한 후 12.1Kb로 정리된걸 확인할 수 있다.
간단한 현황표 불러오기
Name을 인덱스로 두고 재정렬
인덱스를 여러개를 두고 재정렬 가능
원하는 values를 지정할 수 있음.
values에 함수를 적용할 수 있다.
갯수도 적용(len) 가능
분류를 지정(columns)할 수 있음.
Nan에 대한 처리 가능
합계를 지정
경찰서 이름을 index로 하도록 정리하자
깔끔하게 정리된 모습
Multi Columns Index
Multi Index에 대한 접근(조회 방법)
다중 컬럼에서 특정 컬럼 제거(droplevel())
현재 index는 경찰서 이름으로 되어있다.
pip 명령
설치 예시
conda명령
Google Map API Key 발급 - 구글 클라우드 결제 계정 만들기
키제한으로 Geocoding이 안나올경우 사용자 인증정보란 위쪽에 라이브러리로 접속하여 Geocoding API 사용 설정하신후 다시돌아가서 차례대로 진행하여 Geocoding으로 제한하여 발급된 키를 googlemaps에서 사용하면된다.
터미널에서 googlemaps 패키지 설치
설치 후 import하여 사용해보기
For - loop
Python의 반복문은?
for n in [1,2,3,4]:
# 들여쓰기로 코드를 작성
# 들여쓰기가 적용되는곳 까지가
# for문 그리고
# 들여쓰기를 중단하면 for문이 아니다.
예제
Pandas에 잘 맞춰진 반복문용 명령 iterrows()
경찰서의 위경도 정보를 가져오기위해 Google Maps를 사용하여 데이터를 정리해보자.
구글맵 import
구글맵 API 단순 테스트
구글맵 API에서 데이터 얻기
전체 주소에서 필요한 구이름만 가져오기
경찰서 이름에서 소속된 구이름 얻기
crime_station에서 index(idx)와 나머지(rows)를 받아서 반복문을 수행
station_name : 구글 검색을 용이하게 하기 위해 검색어를 가급적 상세하게 잡아줌
loc옵션을 사용
기록후 .head()로 출력해보면
좀 더 깔끔하게 컬럼명을 정리하여 다듬어보자.
100보다 큰 숫자를 찾아서 변경하기
컬럼명을 심플하게 변경하기
범죄의 경중에 따라 데이터를 정리해 보자.
정규화
정규화된 데이터에 기존의 검거율 데이터를 추가하기
seaborn은 import하는 것만으로도 효과를 준다.
seaborn에는 실습용 데이터가 몇개 내장되어 있다.
boxplot을 그려보자
boxplot에 컬럼을 지정
컬럼을 지정하고 구분을 지을 수 있다.
swarmplot
boxplot과 swarmplot의 콜라보
total bill과 tip 사이의 관계 파악
implot에서 hue 옵션을 사용
또 다른 데이터인 flights를 불러와 테스트 해보자.
pivot 옵션을 사용할 수도 있다.
heatmap을 이용하면 전체 경향을 알 수 있다.
colormap을 다르게 적용 가능
주로 머신러닝에서 사용하는 iris(꽃의 데이터)정보도 있다.
다수의 컬럼을 비교하는 pairplot
pairplot에서도 hue 옵션 적용 가능
원하는 컬러만을 pairplot에 적용 시킬수있음.
데이터 확인
pairplot으로 강도, 살인, 폭력에 대한 상관관계를 확인하기
인구수, CCTV와 살인, 강도와의 관계도 알아보자
인구수, CCTV와 살인/폭력 검거율의 관계
인구수, CCTV와 절도/강도 검거율
검거율만 가지고 heatmap 생성
범죄발생 건수로 heatmap 생성
Folium 지도 시각화
근본적으로는 그냥 위경도의 좌표를 알려준다
지도를 html로 저장 가능
스타일을 tiles 옵션으로 지정
지도에 마커를 추가할 수 있다.
다양한 모양의 아이콘을 지원하여 마커를 찍을 수 있다.
Circle 마커
클릭으로 위경도 정보를 반활할 수 있다
지도에 colormap 표현
CSV 파일에 이에 매친되는 id와 값을 가지도록 함.
지도 시각화에 필요한 json 파일을 구해야한다.
오래된 데이터라 한계는 있지만 서울을 대상으로 하는 것에는 문제가 없다.
Lucy Park님의 자료에서 서울 부분만 추린 데이터
범죄율에 대한 지도 시각화
성범죄 발생 건수
5대 범죄 발생 건수
인구수 대비 범죄 발생 건수
경찰서별 정보를 가지고 범죄발생과 함께 정리
경찰서 위치를 지도에 표시
검거에 적절한 값을 곱해서 원의 넓이로 사용
구별 범죄 현황과 경찰서별 검거율을 함께 표시