Python
Python 데이터 분석(주피터노트북) - 서울시 구별 CCTV 설치 대비 범죄율 데이터 분석
developers developing
2022. 11. 30. 12:00
데이터 수집
- 서울 열린 데이터 광장 홈페이지
- 서울시 주민등록인구(구별) 통계
- 서울시 자치구 년도별 CCTV 설치현황
- 서울시 5대 범죄 발생현황 통계
- 구별 인구 통계 : https://data.seoul.go.kr/dataList/419/S/2/datasetView.do
- cctv : https://data.seoul.go.kr/dataList/OA-2734/F/1/datasetView.do
- 서울시 5대범죄 : https://data.seoul.go.kr/dataList/316/S/2/datasetView.do
- 서울시 주민등록인구(구별) 통계
라이브러리 및 세팅
- import seaborn as sns
- seaborn 폰트 사용 - 한글처리보다 먼저 선언해야함
- sns.set(font_scale=1)
- import pandas as pd
- import matplotlib.pyplot as plt
- 한글처리
- plt.rcParams['font.family'] = 'Malgun Gothic'
- plt.rcParams['axes.unicode_minus'] = False
- 경고 메세지
- import warnings
- warnings.simplefilter("ignore")
- seaborn 스타일의 그래프를 사용
- plt.style.use('seaborn')
1. CCTV 설치 현황
데이터 로드
- 필요없는 열 제거
- , 제거
데이터 탐색
데이터 전처리
1) NaN 처리 : 0으로 채우기
- fillna
2) 컬럼명 변경
3) 2019년 이전 컬럼 생성
- 2012년 이전 ~ 2019년 데이터 합 담기
4) 2019년 이전 컬럼 삭제
EDA
1) 구별 CCTV가 가장 적게 설치되어 있는 구 알아보기
2) 구별 CCTV가 가장 많이 설치되어 있는 구 알아보기
2. 서울시 거주 인구 데이터
데이터 로드
- 0,1,3, 행 제외
데이터 전처리
1) 컬럼명 변경
- '구 별', '총 인구','한국인','외국인','고령자'
EDA
1) 어느 구에서 외국인이 가장 많은가?
2) 어느 구에 고령자 수가 가장 많은가?
3) CCTV 설치 대수 대비 범죄율 파악
- 서울시 구별 인구 + CCTV : merge
- 구 별 컬럼을 인덱스 설정
- 1인당 CCTV 비율 컬럼을 생성
상관계수 : corr
- 변수간의 관계의 정도와 방향을 수치로 요약해 주는 지표
- 상관계수는 -1 ~ 1 사이의 값으로 나타남
- 0에 가까울수록 상관 관계는 낮아지며, -1이나 +1에 가까울수록 상관관계는 높아짐
- 증감의 방향이 + 인 경우에는 정적인 상관관계, -인 경우에는 부정적인 상관과계가 있다고 봄
1) 총 인구와 CCTV 총계 상관관계
2) 외국인과 CCTV 총계 상관관계
시각화
- 1인당 CCTV 비율 bar차트
- matplotlib
- pandas
- seaborn
3. 범죄율
데이터 로드
- B부터 D 까지만 사용
데이터 전처리
1) 컬럼명 변경
2) 구 별 인덱스 설정
3) 검거율 컬럼 생성
4) merge_df와 crime_df : concat
시각화