개요
이번 프로젝트는 제로베이스에서 데이터 취업스쿨을 수강 중 진행한 프로젝트로 제로베이스에서 제공된 데이터를 사용했다.
제공된 데이터
- 서울 CCTV 현황 데이터
- 서울 인구 현황 데이터
목표
- 인구수와 CCTV의 관계 파악
- CCTV가 가장 많은 구, 가장 적은 구
- 인구수 대비 상대적으로 CCTV가 가장 많은 구, 가장 적은 구
먼저 파일을 불러온다.
import pandas as pd
CCTV_Seoul = pd.read_csv("../data/Seoul_CCTV.csv", encoding="utf-8")
# 인코딩에러가 뜰 경우 (한글이 안불러와질 경우) "utf-8" or "euc-kr"
CCTV_Seoul.head(10)
여기서 지역 구를 나타내는 컬럼명이 "기관명"이다. 이를 "구별"로 바꾸자.
CCTV의 년도 별 개수 데이터를 토대로 2013년부터 2016까지의 개수 증가율을 보여주는 새로운 열을 만들어보자.
그 다음, 인구수 데이터를 살펴보자.
여기서 컬럼명을 담고 있는 0행과 1행이 중복되어 보인다. 또한, 열 목록을 보면 인구수에서 남자합계, 여자합계, 외국인합계 데이터만 있으면 충분할 것 같으니 컬럼명이 담긴 0행과 1행은 제외하고 필요한 열만 불러오자.
컬럼명이 무엇을 뜻 하는지 컬럼명을 바꿔주자.
다시보니 합계 행도 필요가 없을 것 같으니 제거하자.
여기서 총 인구수에서 외국인 비율, 고령자 비율을 나타내는 컬럼을 추가하자.
두 데이터를 구별
컬럼으로 합쳐보자.
년도 별 데이터는 지워 버리자.
구별 컬럼 자체를 인덱스로 바꿔버리자.
인구수에 따른 CCTV 비율 컬럼을 추가해보자.
matplotlib를 활용한 시각화에서 먼저 한글화 작업이 필요하다.
이제 CCTV 개수를 막대그래프로 나타내보자.
그 다음 인구수 대비 CCTV 개수 비율을 막대그래프로 나타내 보자.
- 막대그래프 분석
- 단순 CCTV 개수 vs 인구 대비 CCTV 개수 파악
- 단순 CCTV 수 많은 구는 강남, 양천, 서초, 관악....
- CCTV 비율이 높은 구는 종로, 용산, 중구, 강남구 ....
- 아직 뚜렷한 경향을 볼 수 없다. 산점도 및 경향 작업을 해보자.
인구수 대비 CCTV 개수를 산점도로 나타내보자.
- 산점도 분석.
- 아직 뚜렷한 경향을 볼 수 없다.
- 인구수와 CCTV의 선형상관관계를 파악할 필요가 있다.
인구수와 CCTV 개수의 상관관계를 파악하기 위해 상관계수를 구해보자.
- 소계와 인구수의 상관관계계수를 보면 0.2 이상이다.
- 통계학에 따르면 상관계수가 0.2 ~ 0.4 이면 상관관계가 있지만 낮은 상관관계임을 의미한다고 한다.
이제 인구수 와 CCTV 개수를 산점도로 나타내고 위에서 구한 선형관계식을 그 위에 나타내보자.
경향선을 만들었지만 아직 부족한 것 같다. 좀 더 데이터를 강조하여 눈에 들어오게 만들어 보자.
데이터 및 칼라맵을 먼저 셋팅한다.
그래프에 오차 데이터 추가 작업.
- 이제 경향, 오차, 그에 대한 그래프가 있어 데이터 분석을 설명할 충분한 자료인 것 같다.
- 인구수 대비 CCTV가 많은 구
- 종로, 용산, 중구 ...
- 인구수 대비 CCTV가 적은 구
- 강서구, 송파구, 중랑구 ...
- 경향에 비해 오차가 가장 큰 구
- 강남구 : CCTV가 경향보다 너무 많다.
- 강서구 : CCTV가 경향보다 너무 많다.
- 인구수와 CCTV 개수의 상관계수가 0.233임 과 선형회귀 직선이 우상향을 보임
- 상관관계는 있지만 약한 상관관계임을 도출해 낼수 있다.