In [3]:
import matplotlib.pyplot as plt
import matplotlib as mpl
# 마이너스 부호 때문에 한글 깨질 수 있어서 주는 설정
plt.rcParams["axes.unicode_minus"] = False
mpl.rc("font", family="Malgun Gothic")
%matplotlib inline
In [19]:
import pandas as pd
import numpy as np
CCTV_Seoul = pd.read_csv('../data/01. Seoul_CCTV.csv', encoding = 'utf-8')
CCTV_Seoul.rename(columns = {CCTV_Seoul.columns[0]:'구별', CCTV_Seoul.columns[1]:'CCTV 수'}, inplace = True)
CCTV_Seoul['최근 증가율'] = ((CCTV_Seoul['2014년']+CCTV_Seoul['2015년']+CCTV_Seoul['2016년'])/CCTV_Seoul['2013년도 이전'] *100)
pop_Seoul = pd.read_excel('../data/01. Seoul_Population.xls',header=2,usecols="B,D,G,J,N")
pop_Seoul.drop([0],axis=0, inplace=True)
pop_Seoul.rename(columns = {pop_Seoul.columns[0]:"구별", pop_Seoul.columns[1]:"인구수", pop_Seoul.columns[2]:"한국인", pop_Seoul.columns[3]:"외국인", pop_Seoul.columns[4]:"고령자", }, inplace = True, )
pop_Seoul['외국인 비율'] = (pop_Seoul['외국인']/pop_Seoul['인구수'] *100)
pop_Seoul['고령자 비율'] = (pop_Seoul['고령자']/pop_Seoul['인구수'] *100)
data_result = pd.merge(CCTV_Seoul,pop_Seoul,how='inner',on='구별')
data_result.drop(['2013년도 이전','2014년','2015년','2016년'],axis=1,inplace=True)
data_result.set_index('구별',inplace=True)
data_result['CCTV 비율'] = data_result['CCTV 수']/data_result['인구수']*100
In [20]:
data_result.head()
Out[20]:
CCTV 수 | 최근 증가율 | 인구수 | 한국인 | 외국인 | 고령자 | 외국인 비율 | 고령자 비율 | CCTV 비율 | |
---|---|---|---|---|---|---|---|---|---|
구별 | |||||||||
강남구 | 3238 | 150.619195 | 561052 | 556164 | 4888 | 65060 | 0.871220 | 11.596073 | 0.577130 |
강동구 | 1010 | 166.490765 | 440359 | 436223 | 4136 | 56161 | 0.939234 | 12.753458 | 0.229358 |
강북구 | 831 | 125.203252 | 328002 | 324479 | 3523 | 56530 | 1.074079 | 17.234651 | 0.253352 |
강서구 | 911 | 134.793814 | 608255 | 601691 | 6564 | 76032 | 1.079153 | 12.500021 | 0.149773 |
관악구 | 2109 | 149.290780 | 520929 | 503297 | 17632 | 70046 | 3.384722 | 13.446362 | 0.404854 |
CCTV 수 컬럼 시각화¶
In [21]:
data_result["CCTV 수"].plot(kind='barh',grid=True,figsize=(10,10));
In [24]:
def draw_graph(criterion):
data_result.sort_values(by=criterion,ascending=True,inplace=True)
data_result[criterion].plot(
kind='barh',grid=True,title='가장 {} 큰 구'.format(criterion),figsize=(10,10));
draw_graph('CCTV 수')
In [25]:
draw_graph('CCTV 비율')
'DS_Study > 서울시 CCTV 현황' 카테고리의 다른 글
[DS_study] Matploblib 기초 (0) | 2022.05.29 |
---|---|
[DS_study] CCTV, 인구통계 데이터 합치기 (0) | 2022.05.29 |
[DS_study] pandas 데이터 합치기 (0) | 2022.05.29 |
[DS_Study] 데이터 흝어보기 (0) | 2022.05.29 |
[DS_study] pandas dataframe 조건식, 칼럼 추가, 수정, isin(), 제거, 함수 적용 (0) | 2022.05.25 |