0. 들어가기에 앞서¶
- 본 Python 프로그래밍 코드는 2022학년 1학기 빅데이터처리와시각화 수업의 기말프로젝트 자료로 사용되었습니다
- 아래 코드는 어디까지나 참고용으로 사용하시기 바랍니다
1. 치안도 계산¶
- 치안도는 자치구별로 계산합니다.
- 치안도 계산에는 아래 요소가 사용됩니다.
- 강력 범죄 발생 빈도 및 검거율
- 시설물 확충 : 가로등, CCTV
- 치안 관련 시내기관 : 경찰서
1.1. 강력 범죄 발생 빈도 및 검거율¶
In [1]:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
sns.set_theme(style='whitegrid', font_scale=1.5)
sns.set_palette('Set2', n_colors=10)
plt.rc('font', family='malgun gothic')
plt.rc('axes', unicode_minus=False)
In [2]:
# 강력 범죄 관련 csv파일 호출
crime_df = pd.read_csv('전처리_서울시 5대 범죄 발생현황.csv', thousands = ',')
In [3]:
crime_df.head()
Out[3]:
자치구 | 살인_발생 | 살인_검거 | 강도_발생 | 강도_검거 | 강간강제추행_발생 | 강간강제추행_검거 | 절도_발생 | 절도_검거 | 폭력_발생 | 폭력_검거 | |
---|---|---|---|---|---|---|---|---|---|---|---|
0 | 종로구 | 9 | 7 | 7 | 9 | 192 | 855 | 1183 | 944 | 1711 | 1528 |
1 | 중구 | 2 | 2 | 5 | 6 | 186 | 128 | 1642 | 863 | 1576 | 1324 |
2 | 용산구 | 5 | 3 | 6 | 6 | 230 | 186 | 1111 | 534 | 1617 | 1327 |
3 | 성동구 | 5 | 5 | 3 | 3 | 115 | 98 | 1016 | 565 | 1223 | 1103 |
4 | 광진구 | 2 | 2 | 4 | 4 | 255 | 224 | 1664 | 874 | 1676 | 1407 |
In [4]:
crime_df.tail()
Out[4]:
자치구 | 살인_발생 | 살인_검거 | 강도_발생 | 강도_검거 | 강간강제추행_발생 | 강간강제추행_검거 | 절도_발생 | 절도_검거 | 폭력_발생 | 폭력_검거 | |
---|---|---|---|---|---|---|---|---|---|---|---|
20 | 관악구 | 12 | 12 | 3 | 3 | 403 | 351 | 2229 | 1137 | 2614 | 2355 |
21 | 서초구 | 5 | 5 | 6 | 4 | 396 | 303 | 2021 | 960 | 2173 | 1780 |
22 | 강남구 | 6 | 5 | 14 | 11 | 708 | 627 | 2951 | 1491 | 3677 | 3111 |
23 | 송파구 | 6 | 6 | 13 | 17 | 287 | 235 | 2429 | 1006 | 2675 | 2280 |
24 | 강동구 | 3 | 3 | 15 | 14 | 188 | 167 | 1640 | 781 | 1942 | 1697 |
In [5]:
# 살인, 절도, 폭력 항목에서 object가 관찰됨
# object를 int64로 변경
crime_df.info()
<class 'pandas.core.frame.DataFrame'> RangeIndex: 25 entries, 0 to 24 Data columns (total 11 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 자치구 25 non-null object 1 살인_발생 25 non-null object 2 살인_검거 25 non-null object 3 강도_발생 25 non-null int64 4 강도_검거 25 non-null int64 5 강간강제추행_발생 25 non-null int64 6 강간강제추행_검거 25 non-null int64 7 절도_발생 25 non-null int64 8 절도_검거 25 non-null int64 9 폭력_발생 25 non-null int64 10 폭력_검거 25 non-null int64 dtypes: int64(8), object(3) memory usage: 2.3+ KB
In [6]:
# 1. 살인_발생, 살인_검거를 int화
crime_df['살인_발생'] = crime_df.살인_발생.replace('-', 0).astype(int)
crime_df['살인_검거'] = crime_df.살인_검거.replace('-', 0).astype(int)
In [7]:
# 살인_발생 / 살인_검거가 무사히 int로 변경되었는지 확인
crime_df.info()
<class 'pandas.core.frame.DataFrame'> RangeIndex: 25 entries, 0 to 24 Data columns (total 11 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 자치구 25 non-null object 1 살인_발생 25 non-null int32 2 살인_검거 25 non-null int32 3 강도_발생 25 non-null int64 4 강도_검거 25 non-null int64 5 강간강제추행_발생 25 non-null int64 6 강간강제추행_검거 25 non-null int64 7 절도_발생 25 non-null int64 8 절도_검거 25 non-null int64 9 폭력_발생 25 non-null int64 10 폭력_검거 25 non-null int64 dtypes: int32(2), int64(8), object(1) memory usage: 2.1+ KB
In [8]:
# 범죄빈도를 각 자치구별로 편하게 할당하기 위해서
# 자치구 열 리스트화
state = list(crime_df.자치구)
print(state)
['종로구', '중구', '용산구', '성동구', '광진구', '동대문구', '중랑구', '성북구', '강북구', '도봉구', '노원구', '은평구', '서대문구', '마포구', '양천구', '강서구', '구로구', '금천구', '영등포구', '동작구', '관악구', '서초구', '강남구', '송파구', '강동구']
In [9]:
# 서울 전체 범죄 중 자치구 범죄발생율
# 1. 살인
murder_sum = crime_df.살인_발생.sum()
print(murder_sum)
141
In [10]:
murder_percent = crime_df.살인_발생 / murder_sum
murder_percent
Out[10]:
0 0.063830 1 0.014184 2 0.035461 3 0.035461 4 0.014184 5 0.070922 6 0.070922 7 0.028369 8 0.063830 9 0.000000 10 0.028369 11 0.028369 12 0.021277 13 0.063830 14 0.035461 15 0.070922 16 0.042553 17 0.028369 18 0.049645 19 0.007092 20 0.085106 21 0.035461 22 0.042553 23 0.042553 24 0.021277 Name: 살인_발생, dtype: float64
In [11]:
# 2. 강도
roberry_sum = crime_df.강도_발생.sum()
roberry_sum
Out[11]:
138
In [12]:
roberry_percent = crime_df.강도_발생 / roberry_sum
roberry_percent
Out[12]:
0 0.050725 1 0.036232 2 0.043478 3 0.021739 4 0.028986 5 0.043478 6 0.036232 7 0.021739 8 0.036232 9 0.014493 10 0.021739 11 0.028986 12 0.014493 13 0.028986 14 0.021739 15 0.043478 16 0.036232 17 0.050725 18 0.043478 19 0.007246 20 0.021739 21 0.043478 22 0.101449 23 0.094203 24 0.108696 Name: 강도_발생, dtype: float64
In [13]:
# 강간강제추행
rape_sum = crime_df.강간강제추행_발생.sum()
rape_sum
Out[13]:
5763
In [14]:
rape_percent = crime_df.강간강제추행_발생 / rape_sum
rape_percent
Out[14]:
0 0.033316 1 0.032275 2 0.039910 3 0.019955 4 0.044248 5 0.027937 6 0.031754 7 0.024640 8 0.027590 9 0.014229 10 0.029325 11 0.029672 12 0.027590 13 0.060385 14 0.018914 15 0.045983 16 0.034184 17 0.020302 18 0.054659 19 0.039216 20 0.069929 21 0.068714 22 0.122853 23 0.049800 24 0.032622 Name: 강간강제추행_발생, dtype: float64
In [15]:
# 절도
thief_sum = crime_df.절도_발생.sum()
thief_sum
Out[15]:
38293
In [16]:
thief_percent = crime_df.절도_발생 / thief_sum
thief_percent
Out[16]:
0 0.030893 1 0.042880 2 0.029013 3 0.026532 4 0.043454 5 0.037605 6 0.039328 7 0.025801 8 0.020369 9 0.022485 10 0.036665 11 0.035803 12 0.028125 13 0.038728 14 0.039616 15 0.044107 16 0.046040 17 0.026088 18 0.057138 19 0.035019 20 0.058209 21 0.052777 22 0.077064 23 0.063432 24 0.042828 Name: 절도_발생, dtype: float64
In [17]:
# 폭력
violence_sum = crime_df.폭력_발생.sum()
violence_sum
Out[17]:
48344
In [18]:
violence_percent = crime_df.폭력_발생 / violence_sum
violence_percent
Out[18]:
0 0.035392 1 0.032600 2 0.033448 3 0.025298 4 0.034668 5 0.036902 6 0.041825 7 0.029580 8 0.037585 9 0.025525 10 0.044742 11 0.038061 12 0.026725 13 0.038143 14 0.032724 15 0.050575 16 0.045590 17 0.030428 18 0.055870 19 0.033737 20 0.054071 21 0.044949 22 0.076059 23 0.055333 24 0.040170 Name: 폭력_발생, dtype: float64
<범죄지수 공식1 : 1 - 범죄율>¶
In [19]:
# 범죄안전지수 계산식
# 살인지수
murder_index = 1 - murder_percent
# 강도지수
roberry_index = 1 - roberry_percent
# 강간강제추행지수
rape_index = 1 - rape_percent
# 절도지수
thief_index = 1 - thief_percent
# 폭행지수
violence_index = 1 - violence_percent
In [20]:
crime_index_list = murder_index + roberry_index + rape_index + thief_index + violence_index
In [21]:
crime_index_list
Out[21]:
0 4.785844 1 4.841829 2 4.818690 3 4.871015 4 4.834460 5 4.783156 6 4.779938 7 4.869871 8 4.814394 9 4.923269 10 4.839161 11 4.839110 12 4.881790 13 4.769928 14 4.851547 15 4.744934 16 4.795402 17 4.844089 18 4.739209 19 4.877689 20 4.710946 21 4.754621 22 4.580022 23 4.694679 24 4.754408 dtype: float64
In [22]:
crime_index_list.values
Out[22]:
array([4.78584403, 4.84182926, 4.81869005, 4.87101486, 4.83445968, 4.78315593, 4.77993825, 4.86987139, 4.81439446, 4.92326862, 4.83916056, 4.8391102 , 4.88179047, 4.76992848, 4.85154671, 4.74493443, 4.79540165, 4.84408856, 4.73920851, 4.8776889 , 4.71094573, 4.75462056, 4.58002208, 4.69467888, 4.75440774])
In [23]:
crime_index_dict = dict(zip(state, crime_index_list.values))
In [24]:
# 범죄안전지수 완성
crime_index_dict
Out[24]:
{'종로구': 4.785844029746858, '중구': 4.841829260078239, '용산구': 4.81869005061282, '성동구': 4.871014862367488, '광진구': 4.834459679570065, '동대문구': 4.783155929804834, '중랑구': 4.779938246358383, '성북구': 4.869871391552214, '강북구': 4.814394464768535, '도봉구': 4.92326861755819, '노원구': 4.839160556266389, '은평구': 4.839110198417501, '서대문구': 4.881790472306983, '마포구': 4.769928478379005, '양천구': 4.851546708247595, '강서구': 4.744934434747133, '구로구': 4.795401654574427, '금천구': 4.844088555233447, '영등포구': 4.739208508327312, '동작구': 4.877688900984432, '관악구': 4.710945732185163, '서초구': 4.754620563900914, '강남구': 4.5800220825322, '송파구': 4.694678883712141, '강동구': 4.754407737767735}
<범죄지수 공식2 : 범죄율 순위화>¶
In [33]:
murder_percent
Out[33]:
0 0.063830 1 0.014184 2 0.035461 3 0.035461 4 0.014184 5 0.070922 6 0.070922 7 0.028369 8 0.063830 9 0.000000 10 0.028369 11 0.028369 12 0.021277 13 0.063830 14 0.035461 15 0.070922 16 0.042553 17 0.028369 18 0.049645 19 0.007092 20 0.085106 21 0.035461 22 0.042553 23 0.042553 24 0.021277 Name: 살인_발생, dtype: float64
In [113]:
# 다른 방법으로 산출한 범죄안전지수
# 높으면 높을수록 치안이 나쁘다.
# 서울시 전체 범죄 중 각 범죄를 순위화
# 살인
murder_index2 = murder_percent.rank(ascending = False) / len(murder_percent)
murder_index2
Out[113]:
0 0.24 1 0.90 2 0.54 3 0.54 4 0.90 5 0.12 6 0.12 7 0.70 8 0.24 9 1.00 10 0.70 11 0.70 12 0.82 13 0.24 14 0.54 15 0.12 16 0.40 17 0.70 18 0.32 19 0.96 20 0.04 21 0.54 22 0.40 23 0.40 24 0.82 Name: 살인_발생, dtype: float64
In [38]:
roberry_percent
Out[38]:
0 0.050725 1 0.036232 2 0.043478 3 0.021739 4 0.028986 5 0.043478 6 0.036232 7 0.021739 8 0.036232 9 0.014493 10 0.021739 11 0.028986 12 0.014493 13 0.028986 14 0.021739 15 0.043478 16 0.036232 17 0.050725 18 0.043478 19 0.007246 20 0.021739 21 0.043478 22 0.101449 23 0.094203 24 0.108696 Name: 강도_발생, dtype: float64
In [114]:
# 강도
roberry_index2 = roberry_percent.rank(ascending = False) / len(roberry_percent)
roberry_index2
Out[114]:
0 0.18 1 0.50 2 0.32 3 0.80 4 0.64 5 0.32 6 0.50 7 0.80 8 0.50 9 0.94 10 0.80 11 0.64 12 0.94 13 0.64 14 0.80 15 0.32 16 0.50 17 0.18 18 0.32 19 1.00 20 0.80 21 0.32 22 0.08 23 0.12 24 0.04 Name: 강도_발생, dtype: float64
In [40]:
rape_percent
Out[40]:
0 0.033316 1 0.032275 2 0.039910 3 0.019955 4 0.044248 5 0.027937 6 0.031754 7 0.024640 8 0.027590 9 0.014229 10 0.029325 11 0.029672 12 0.027590 13 0.060385 14 0.018914 15 0.045983 16 0.034184 17 0.020302 18 0.054659 19 0.039216 20 0.069929 21 0.068714 22 0.122853 23 0.049800 24 0.032622 Name: 강간강제추행_발생, dtype: float64
In [115]:
# 강간강제추행
rape_index2 = rape_percent.rank(ascending = False) / len(rape_percent)
rape_index2
Out[115]:
0 0.48 1 0.56 2 0.36 3 0.92 4 0.32 5 0.72 6 0.60 7 0.84 8 0.78 9 1.00 10 0.68 11 0.64 12 0.78 13 0.16 14 0.96 15 0.28 16 0.44 17 0.88 18 0.20 19 0.40 20 0.08 21 0.12 22 0.04 23 0.24 24 0.52 Name: 강간강제추행_발생, dtype: float64
In [44]:
thief_percent
Out[44]:
0 0.030893 1 0.042880 2 0.029013 3 0.026532 4 0.043454 5 0.037605 6 0.039328 7 0.025801 8 0.020369 9 0.022485 10 0.036665 11 0.035803 12 0.028125 13 0.038728 14 0.039616 15 0.044107 16 0.046040 17 0.026088 18 0.057138 19 0.035019 20 0.058209 21 0.052777 22 0.077064 23 0.063432 24 0.042828 Name: 절도_발생, dtype: float64
In [116]:
# 절도
thief_index2 = thief_percent.rank(ascending = False) / len(thief_percent)
thief_index2
Out[116]:
0 0.72 1 0.36 2 0.76 3 0.84 4 0.32 5 0.56 6 0.48 7 0.92 8 1.00 9 0.96 10 0.60 11 0.64 12 0.80 13 0.52 14 0.44 15 0.28 16 0.24 17 0.88 18 0.16 19 0.68 20 0.12 21 0.20 22 0.04 23 0.08 24 0.40 Name: 절도_발생, dtype: float64
In [49]:
violence_percent
Out[49]:
0 0.035392 1 0.032600 2 0.033448 3 0.025298 4 0.034668 5 0.036902 6 0.041825 7 0.029580 8 0.037585 9 0.025525 10 0.044742 11 0.038061 12 0.026725 13 0.038143 14 0.032724 15 0.050575 16 0.045590 17 0.030428 18 0.055870 19 0.033737 20 0.054071 21 0.044949 22 0.076059 23 0.055333 24 0.040170 Name: 폭력_발생, dtype: float64
In [117]:
# 폭행
violence_index2 = violence_percent.rank(ascending = False) / len(violence_percent)
violence_index2
Out[117]:
0 0.60 1 0.80 2 0.72 3 1.00 4 0.64 5 0.56 6 0.36 7 0.88 8 0.52 9 0.96 10 0.32 11 0.48 12 0.92 13 0.44 14 0.76 15 0.20 16 0.24 17 0.84 18 0.08 19 0.68 20 0.16 21 0.28 22 0.04 23 0.12 24 0.40 Name: 폭력_발생, dtype: float64
In [118]:
all_crime_safe = murder_index2 + roberry_index2 + rape_index2 + thief_index2 + violence_index2
In [119]:
crime_index_list2 = []
crime_index_list2.append(state)
crime_index_list2.append(murder_index2.values)
crime_index_list2.append(roberry_index2.values)
crime_index_list2.append(rape_index2.values)
crime_index_list2.append(thief_index2.values)
crime_index_list2.append(violence_index2.values)
crime_index_list2.append(all_crime_safe.values)
crime_index_list2
Out[119]:
[['종로구', '중구', '용산구', '성동구', '광진구', '동대문구', '중랑구', '성북구', '강북구', '도봉구', '노원구', '은평구', '서대문구', '마포구', '양천구', '강서구', '구로구', '금천구', '영등포구', '동작구', '관악구', '서초구', '강남구', '송파구', '강동구'], array([0.24, 0.9 , 0.54, 0.54, 0.9 , 0.12, 0.12, 0.7 , 0.24, 1. , 0.7 , 0.7 , 0.82, 0.24, 0.54, 0.12, 0.4 , 0.7 , 0.32, 0.96, 0.04, 0.54, 0.4 , 0.4 , 0.82]), array([0.18, 0.5 , 0.32, 0.8 , 0.64, 0.32, 0.5 , 0.8 , 0.5 , 0.94, 0.8 , 0.64, 0.94, 0.64, 0.8 , 0.32, 0.5 , 0.18, 0.32, 1. , 0.8 , 0.32, 0.08, 0.12, 0.04]), array([0.48, 0.56, 0.36, 0.92, 0.32, 0.72, 0.6 , 0.84, 0.78, 1. , 0.68, 0.64, 0.78, 0.16, 0.96, 0.28, 0.44, 0.88, 0.2 , 0.4 , 0.08, 0.12, 0.04, 0.24, 0.52]), array([0.72, 0.36, 0.76, 0.84, 0.32, 0.56, 0.48, 0.92, 1. , 0.96, 0.6 , 0.64, 0.8 , 0.52, 0.44, 0.28, 0.24, 0.88, 0.16, 0.68, 0.12, 0.2 , 0.04, 0.08, 0.4 ]), array([0.6 , 0.8 , 0.72, 1. , 0.64, 0.56, 0.36, 0.88, 0.52, 0.96, 0.32, 0.48, 0.92, 0.44, 0.76, 0.2 , 0.24, 0.84, 0.08, 0.68, 0.16, 0.28, 0.04, 0.12, 0.4 ]), array([2.22, 3.12, 2.7 , 4.1 , 2.82, 2.28, 2.06, 4.14, 3.04, 4.86, 3.1 , 3.1 , 4.26, 2. , 3.5 , 1.2 , 1.82, 3.48, 1.08, 3.72, 1.2 , 1.46, 0.6 , 0.96, 2.18])]
In [156]:
col_name_crime = ['자치구', '살인_안전지수', '강도_안전지수','강간강제추행_안전지수', '절도_안전지수', '폭행_안전지수', '범죄안전지수_합계']
In [157]:
crime_index_df2 = pd.DataFrame(crime_index_list2).T
crime_index_df2.columns = col_name_crime
In [158]:
crime_index_df2
Out[158]:
자치구 | 살인_안전지수 | 강도_안전지수 | 강간강제추행_안전지수 | 절도_안전지수 | 폭행_안전지수 | 범죄안전지수_합계 | |
---|---|---|---|---|---|---|---|
0 | 종로구 | 0.24 | 0.18 | 0.48 | 0.72 | 0.6 | 2.22 |
1 | 중구 | 0.9 | 0.5 | 0.56 | 0.36 | 0.8 | 3.12 |
2 | 용산구 | 0.54 | 0.32 | 0.36 | 0.76 | 0.72 | 2.7 |
3 | 성동구 | 0.54 | 0.8 | 0.92 | 0.84 | 1.0 | 4.1 |
4 | 광진구 | 0.9 | 0.64 | 0.32 | 0.32 | 0.64 | 2.82 |
5 | 동대문구 | 0.12 | 0.32 | 0.72 | 0.56 | 0.56 | 2.28 |
6 | 중랑구 | 0.12 | 0.5 | 0.6 | 0.48 | 0.36 | 2.06 |
7 | 성북구 | 0.7 | 0.8 | 0.84 | 0.92 | 0.88 | 4.14 |
8 | 강북구 | 0.24 | 0.5 | 0.78 | 1.0 | 0.52 | 3.04 |
9 | 도봉구 | 1.0 | 0.94 | 1.0 | 0.96 | 0.96 | 4.86 |
10 | 노원구 | 0.7 | 0.8 | 0.68 | 0.6 | 0.32 | 3.1 |
11 | 은평구 | 0.7 | 0.64 | 0.64 | 0.64 | 0.48 | 3.1 |
12 | 서대문구 | 0.82 | 0.94 | 0.78 | 0.8 | 0.92 | 4.26 |
13 | 마포구 | 0.24 | 0.64 | 0.16 | 0.52 | 0.44 | 2.0 |
14 | 양천구 | 0.54 | 0.8 | 0.96 | 0.44 | 0.76 | 3.5 |
15 | 강서구 | 0.12 | 0.32 | 0.28 | 0.28 | 0.2 | 1.2 |
16 | 구로구 | 0.4 | 0.5 | 0.44 | 0.24 | 0.24 | 1.82 |
17 | 금천구 | 0.7 | 0.18 | 0.88 | 0.88 | 0.84 | 3.48 |
18 | 영등포구 | 0.32 | 0.32 | 0.2 | 0.16 | 0.08 | 1.08 |
19 | 동작구 | 0.96 | 1.0 | 0.4 | 0.68 | 0.68 | 3.72 |
20 | 관악구 | 0.04 | 0.8 | 0.08 | 0.12 | 0.16 | 1.2 |
21 | 서초구 | 0.54 | 0.32 | 0.12 | 0.2 | 0.28 | 1.46 |
22 | 강남구 | 0.4 | 0.08 | 0.04 | 0.04 | 0.04 | 0.6 |
23 | 송파구 | 0.4 | 0.12 | 0.24 | 0.08 | 0.12 | 0.96 |
24 | 강동구 | 0.82 | 0.04 | 0.52 | 0.4 | 0.4 | 2.18 |
In [159]:
def bar_graph(x_index, value, title):
plt.figure(figsize = (15, 10))
plt.bar(range(len(x_index)), value)
# x축 설정
index = np.arange(len(x_index))
plt.xticks(index, x_index, rotation = 90)
# 그래프 제목
plt.title(title)
plt.show()
In [160]:
# 추가 : 각 범죄별 비율 현황
# 1. 살인 : murder_percent
bar_graph(state, murder_percent.values, "서울시 전체 살인사건 발생대비 각 자치구별 사건발생비율")
In [161]:
# 2. 강도 : roberry_percent
bar_graph(state, roberry_percent.values, "서울시 전체 강도사건 발생대비 각 자치구별 사건발생비율")
In [162]:
# 3. 강간강제추행 : rape_percent
bar_graph(state, rape_percent.values, "서울시 전체 강간강제추행 발생대비 각 자치구별 사건발생비율")
In [163]:
# 4. 절도 : thief_percent
bar_graph(state, thief_percent.values, "서울시 전체 절도사건 발생대비 각 자치구별 사건발생비율")
In [164]:
# 5. 폭행 : violence_percent
bar_graph(state, violence_percent.values, "서울시 전체 폭행사건 발생대비 각 자치구별 사건발생비율")
In [165]:
# 2. 강도 :
plt.figure(figsize = (15, 10))
plt.bar(range(len(state)), murder_percent.values)
# x축 설정
index = np.arange(len(state))
plt.xticks(index, state, rotation = 90)
# 그래프 제목
plt.title("서울시 전체 살인사건 발생대비 각 자치구별 사건발생비율", size = 20)
plt.show()
1.2. 시설물 현황 : CCTV, 가로등, 경찰서¶
In [166]:
# 서울시 면적 구성비
ground_df = pd.read_csv('서울시 자치구별 면적 구성비.csv', encoding = 'CP949')
In [167]:
# 가로등 개수 csv
lamp_df = pd.read_csv('pre_2020_서울시_자치구별_가로등개수.csv')
In [168]:
# 방범목적 CCTV 대수
cctv_df = pd.read_csv('pre_서울시_CCTV설치운영현황_목적별_방범.csv')
In [169]:
# 경찰서
police_df = pd.read_csv('pre_2020_서울시_자치구별_시내주요기관통계_경찰서및지구대.csv')
In [170]:
ground_df.head()
Out[170]:
자치구 | 면적 | 구성비(%) | |
---|---|---|---|
0 | 서울시 | 605.23 | 100.00 |
1 | 종로구 | 23.91 | 3.95 |
2 | 중구 | 9.96 | 1.65 |
3 | 용산구 | 21.87 | 3.61 |
4 | 성동구 | 16.86 | 2.79 |
In [171]:
lamp_df.head()
Out[171]:
자치구 | 가로등 | |
---|---|---|
0 | 합계 | 283974 |
1 | 종로구 | 8818 |
2 | 중구 | 8550 |
3 | 용산구 | 7838 |
4 | 성동구 | 6266 |
In [172]:
cctv_df.head()
Out[172]:
자치구 | 총계 | 방범 | |
---|---|---|---|
0 | 총 계 | 83557 | 57161 |
1 | 종로구 | 1715 | 1403 |
2 | 중구 | 2447 | 1572 |
3 | 용산구 | 2611 | 1934 |
4 | 성동구 | 3829 | 2600 |
In [173]:
police_df.head()
Out[173]:
자치구 | 경찰서 | 지구대파출소치안센터 | 합계 | |
---|---|---|---|---|
0 | 합계 | 31 | 408 | 439 |
1 | 종로구 | 2 | 22 | 24 |
2 | 중구 | 2 | 18 | 20 |
3 | 용산구 | 1 | 12 | 13 |
4 | 성동구 | 1 | 15 | 16 |
In [174]:
# 자치구를 기준으로 merge 실시
# 면적 + 가로등
df = ground_df.merge(lamp_df, on = '자치구', how = 'inner')
In [175]:
df
Out[175]:
자치구 | 면적 | 구성비(%) | 가로등 | |
---|---|---|---|---|
0 | 종로구 | 23.91 | 3.95 | 8818 |
1 | 중구 | 9.96 | 1.65 | 8550 |
2 | 용산구 | 21.87 | 3.61 | 7838 |
3 | 성동구 | 16.86 | 2.79 | 6266 |
4 | 광진구 | 17.06 | 2.82 | 4908 |
5 | 동대문구 | 14.22 | 2.35 | 8342 |
6 | 중랑구 | 18.50 | 3.06 | 6521 |
7 | 성북구 | 24.58 | 4.06 | 5744 |
8 | 강북구 | 23.60 | 3.90 | 4301 |
9 | 도봉구 | 20.65 | 3.41 | 4584 |
10 | 노원구 | 35.44 | 5.86 | 9443 |
11 | 은평구 | 29.71 | 4.91 | 6173 |
12 | 서대문구 | 17.63 | 2.91 | 6245 |
13 | 마포구 | 23.85 | 3.94 | 8392 |
14 | 양천구 | 17.41 | 2.88 | 8583 |
15 | 강서구 | 41.44 | 6.85 | 9552 |
16 | 구로구 | 20.12 | 3.32 | 8199 |
17 | 금천구 | 13.02 | 2.15 | 5507 |
18 | 영등포구 | 24.55 | 4.06 | 9535 |
19 | 동작구 | 16.35 | 2.70 | 6105 |
20 | 관악구 | 29.57 | 4.89 | 5588 |
21 | 서초구 | 46.98 | 7.76 | 12588 |
22 | 강남구 | 39.50 | 6.53 | 14326 |
23 | 송파구 | 33.87 | 5.60 | 14184 |
24 | 강동구 | 24.59 | 4.06 | 7952 |
In [176]:
# (면적 + 가로등) + police
df = df.merge(police_df, on = '자치구', how = 'inner')
In [177]:
df
Out[177]:
자치구 | 면적 | 구성비(%) | 가로등 | 경찰서 | 지구대파출소치안센터 | 합계 | |
---|---|---|---|---|---|---|---|
0 | 종로구 | 23.91 | 3.95 | 8818 | 2 | 22 | 24 |
1 | 중구 | 9.96 | 1.65 | 8550 | 2 | 18 | 20 |
2 | 용산구 | 21.87 | 3.61 | 7838 | 1 | 12 | 13 |
3 | 성동구 | 16.86 | 2.79 | 6266 | 1 | 15 | 16 |
4 | 광진구 | 17.06 | 2.82 | 4908 | 1 | 12 | 13 |
5 | 동대문구 | 14.22 | 2.35 | 8342 | 1 | 20 | 21 |
6 | 중랑구 | 18.50 | 3.06 | 6521 | 1 | 17 | 18 |
7 | 성북구 | 24.58 | 4.06 | 5744 | 2 | 24 | 26 |
8 | 강북구 | 23.60 | 3.90 | 4301 | 1 | 14 | 15 |
9 | 도봉구 | 20.65 | 3.41 | 4584 | 1 | 9 | 10 |
10 | 노원구 | 35.44 | 5.86 | 9443 | 1 | 16 | 17 |
11 | 은평구 | 29.71 | 4.91 | 6173 | 2 | 20 | 22 |
12 | 서대문구 | 17.63 | 2.91 | 6245 | 1 | 10 | 11 |
13 | 마포구 | 23.85 | 3.94 | 8392 | 1 | 15 | 16 |
14 | 양천구 | 17.41 | 2.88 | 8583 | 1 | 15 | 16 |
15 | 강서구 | 41.44 | 6.85 | 9552 | 1 | 12 | 13 |
16 | 구로구 | 20.12 | 3.32 | 8199 | 1 | 17 | 18 |
17 | 금천구 | 13.02 | 2.15 | 5507 | 1 | 12 | 13 |
18 | 영등포구 | 24.55 | 4.06 | 9535 | 1 | 15 | 16 |
19 | 동작구 | 16.35 | 2.70 | 6105 | 1 | 17 | 18 |
20 | 관악구 | 29.57 | 4.89 | 5588 | 1 | 19 | 20 |
21 | 서초구 | 46.98 | 7.76 | 12588 | 2 | 19 | 21 |
22 | 강남구 | 39.50 | 6.53 | 14326 | 2 | 21 | 23 |
23 | 송파구 | 33.87 | 5.60 | 14184 | 1 | 21 | 22 |
24 | 강동구 | 24.59 | 4.06 | 7952 | 1 | 16 | 17 |
In [178]:
# (면적 + 가로등 + police) + cctv
df = df.merge(cctv_df, on = '자치구', how = 'inner')
In [179]:
df
Out[179]:
자치구 | 면적 | 구성비(%) | 가로등 | 경찰서 | 지구대파출소치안센터 | 합계 | 총계 | 방범 | |
---|---|---|---|---|---|---|---|---|---|
0 | 종로구 | 23.91 | 3.95 | 8818 | 2 | 22 | 24 | 1715 | 1403 |
1 | 중구 | 9.96 | 1.65 | 8550 | 2 | 18 | 20 | 2447 | 1572 |
2 | 용산구 | 21.87 | 3.61 | 7838 | 1 | 12 | 13 | 2611 | 1934 |
3 | 성동구 | 16.86 | 2.79 | 6266 | 1 | 15 | 16 | 3829 | 2600 |
4 | 광진구 | 17.06 | 2.82 | 4908 | 1 | 12 | 13 | 3211 | 2267 |
5 | 동대문구 | 14.22 | 2.35 | 8342 | 1 | 20 | 21 | 2628 | 1981 |
6 | 중랑구 | 18.50 | 3.06 | 6521 | 1 | 17 | 18 | 3737 | 3282 |
7 | 성북구 | 24.58 | 4.06 | 5744 | 2 | 24 | 26 | 4602 | 2792 |
8 | 강북구 | 23.60 | 3.90 | 4301 | 1 | 14 | 15 | 3090 | 2138 |
9 | 도봉구 | 20.65 | 3.41 | 4584 | 1 | 9 | 10 | 1930 | 1048 |
10 | 노원구 | 35.44 | 5.86 | 9443 | 1 | 16 | 17 | 2492 | 1341 |
11 | 은평구 | 29.71 | 4.91 | 6173 | 2 | 20 | 22 | 4131 | 2608 |
12 | 서대문구 | 17.63 | 2.91 | 6245 | 1 | 10 | 11 | 3055 | 1904 |
13 | 마포구 | 23.85 | 3.94 | 8392 | 1 | 15 | 16 | 2496 | 2010 |
14 | 양천구 | 17.41 | 2.88 | 8583 | 1 | 15 | 16 | 3650 | 2253 |
15 | 강서구 | 41.44 | 6.85 | 9552 | 1 | 12 | 13 | 2744 | 2211 |
16 | 구로구 | 20.12 | 3.32 | 8199 | 1 | 17 | 18 | 4608 | 2872 |
17 | 금천구 | 13.02 | 2.15 | 5507 | 1 | 12 | 13 | 2411 | 1783 |
18 | 영등포구 | 24.55 | 4.06 | 9535 | 1 | 15 | 16 | 4056 | 3048 |
19 | 동작구 | 16.35 | 2.70 | 6105 | 1 | 17 | 18 | 2306 | 1621 |
20 | 관악구 | 29.57 | 4.89 | 5588 | 1 | 19 | 20 | 5149 | 2686 |
21 | 서초구 | 46.98 | 7.76 | 12588 | 2 | 19 | 21 | 4082 | 2993 |
22 | 강남구 | 39.50 | 6.53 | 14326 | 2 | 21 | 23 | 6871 | 4839 |
23 | 송파구 | 33.87 | 5.60 | 14184 | 1 | 21 | 22 | 2897 | 1648 |
24 | 강동구 | 24.59 | 4.06 | 7952 | 1 | 16 | 17 | 2809 | 2327 |
In [180]:
# 토지구성비 산출
g_composition = df['구성비(%)'] * 0.01
g_composition
Out[180]:
0 0.0395 1 0.0165 2 0.0361 3 0.0279 4 0.0282 5 0.0235 6 0.0306 7 0.0406 8 0.0390 9 0.0341 10 0.0586 11 0.0491 12 0.0291 13 0.0394 14 0.0288 15 0.0685 16 0.0332 17 0.0215 18 0.0406 19 0.0270 20 0.0489 21 0.0776 22 0.0653 23 0.0560 24 0.0406 Name: 구성비(%), dtype: float64
In [181]:
# 1. 면적 대비 가로등 대수
lamp_index = df.가로등 * g_composition
lamp_index
Out[181]:
0 348.3110 1 141.0750 2 282.9518 3 174.8214 4 138.4056 5 196.0370 6 199.5426 7 233.2064 8 167.7390 9 156.3144 10 553.3598 11 303.0943 12 181.7295 13 330.6448 14 247.1904 15 654.3120 16 272.2068 17 118.4005 18 387.1210 19 164.8350 20 273.2532 21 976.8288 22 935.4878 23 794.3040 24 322.8512 dtype: float64
In [182]:
bar_graph(df.자치구.values, lamp_index.values, "면적 대비 가로등 대수")
In [183]:
# 2. 면적 대비 치안유지기관 수
police_index = df.합계 * g_composition
police_index
Out[183]:
0 0.9480 1 0.3300 2 0.4693 3 0.4464 4 0.3666 5 0.4935 6 0.5508 7 1.0556 8 0.5850 9 0.3410 10 0.9962 11 1.0802 12 0.3201 13 0.6304 14 0.4608 15 0.8905 16 0.5976 17 0.2795 18 0.6496 19 0.4860 20 0.9780 21 1.6296 22 1.5019 23 1.2320 24 0.6902 dtype: float64
In [184]:
bar_graph(df.자치구.values, police_index.values, "면적 대비 치안유지기관 수")
In [185]:
# 3. 면적 대비 방법용 CCTV 대수
cctv_index = df.방범 * g_composition
cctv_index
Out[185]:
0 55.4185 1 25.9380 2 69.8174 3 72.5400 4 63.9294 5 46.5535 6 100.4292 7 113.3552 8 83.3820 9 35.7368 10 78.5826 11 128.0528 12 55.4064 13 79.1940 14 64.8864 15 151.4535 16 95.3504 17 38.3345 18 123.7488 19 43.7670 20 131.3454 21 232.2568 22 315.9867 23 92.2880 24 94.4762 dtype: float64
In [186]:
bar_graph(df.자치구.values, cctv_index.values, "면적 대비 CCTV 대수")
In [187]:
# 치안도 생성
# 1. lamp_index (0 ~ 1의 수치로 표시되도록 적용, 1 = 좋음, 0 = 나쁨)
final_lamp_index = lamp_index.rank(ascending = True) / len(lamp_index)
final_lamp_index
Out[187]:
0 0.76 1 0.12 2 0.60 3 0.28 4 0.08 5 0.36 6 0.40 7 0.44 8 0.24 9 0.16 10 0.84 11 0.64 12 0.32 13 0.72 14 0.48 15 0.88 16 0.52 17 0.04 18 0.80 19 0.20 20 0.56 21 1.00 22 0.96 23 0.92 24 0.68 dtype: float64
In [188]:
# 2. police_index (0 ~ 1의 수치로 표시)
final_police_index = police_index.rank(ascending = True) / len(police_index)
final_police_index
Out[188]:
0 0.72 1 0.12 2 0.32 3 0.24 4 0.20 5 0.40 6 0.44 7 0.84 8 0.48 9 0.16 10 0.80 11 0.88 12 0.08 13 0.56 14 0.28 15 0.68 16 0.52 17 0.04 18 0.60 19 0.36 20 0.76 21 1.00 22 0.96 23 0.92 24 0.64 dtype: float64
In [189]:
# 3. cctv_index (0 ~ 1의 수치로 표시)
final_cctv_index = cctv_index.rank(ascending = True) / len(cctv_index)
final_cctv_index
Out[189]:
0 0.28 1 0.04 2 0.40 3 0.44 4 0.32 5 0.20 6 0.72 7 0.76 8 0.56 9 0.08 10 0.48 11 0.84 12 0.24 13 0.52 14 0.36 15 0.92 16 0.68 17 0.12 18 0.80 19 0.16 20 0.88 21 0.96 22 1.00 23 0.60 24 0.64 dtype: float64
In [190]:
sum_index = final_lamp_index + final_police_index + final_cctv_index
sum_index
Out[190]:
0 1.76 1 0.28 2 1.32 3 0.96 4 0.60 5 0.96 6 1.56 7 2.04 8 1.28 9 0.40 10 2.12 11 2.36 12 0.64 13 1.80 14 1.12 15 2.48 16 1.72 17 0.20 18 2.20 19 0.72 20 2.20 21 2.96 22 2.92 23 2.44 24 1.96 dtype: float64
In [191]:
index_list = []
index_list.append(df.자치구.values)
index_list.append(final_lamp_index.values)
index_list.append(final_police_index.values)
index_list.append(final_cctv_index.values)
index_list.append(sum_index.values)
index_list
Out[191]:
[array(['종로구', '중구', '용산구', '성동구', '광진구', '동대문구', '중랑구', '성북구', '강북구', '도봉구', '노원구', '은평구', '서대문구', '마포구', '양천구', '강서구', '구로구', '금천구', '영등포구', '동작구', '관악구', '서초구', '강남구', '송파구', '강동구'], dtype=object), array([0.76, 0.12, 0.6 , 0.28, 0.08, 0.36, 0.4 , 0.44, 0.24, 0.16, 0.84, 0.64, 0.32, 0.72, 0.48, 0.88, 0.52, 0.04, 0.8 , 0.2 , 0.56, 1. , 0.96, 0.92, 0.68]), array([0.72, 0.12, 0.32, 0.24, 0.2 , 0.4 , 0.44, 0.84, 0.48, 0.16, 0.8 , 0.88, 0.08, 0.56, 0.28, 0.68, 0.52, 0.04, 0.6 , 0.36, 0.76, 1. , 0.96, 0.92, 0.64]), array([0.28, 0.04, 0.4 , 0.44, 0.32, 0.2 , 0.72, 0.76, 0.56, 0.08, 0.48, 0.84, 0.24, 0.52, 0.36, 0.92, 0.68, 0.12, 0.8 , 0.16, 0.88, 0.96, 1. , 0.6 , 0.64]), array([1.76, 0.28, 1.32, 0.96, 0.6 , 0.96, 1.56, 2.04, 1.28, 0.4 , 2.12, 2.36, 0.64, 1.8 , 1.12, 2.48, 1.72, 0.2 , 2.2 , 0.72, 2.2 , 2.96, 2.92, 2.44, 1.96])]
In [192]:
col_name = ['자치구', '가로등_지수', '치안유지기관_지수', 'cctv_지수', '치안지수_합계']
In [193]:
index_df = pd.DataFrame(index_list).T
In [194]:
index_df.columns = col_name
In [195]:
index_df
Out[195]:
자치구 | 가로등_지수 | 치안유지기관_지수 | cctv_지수 | 치안지수_합계 | |
---|---|---|---|---|---|
0 | 종로구 | 0.76 | 0.72 | 0.28 | 1.76 |
1 | 중구 | 0.12 | 0.12 | 0.04 | 0.28 |
2 | 용산구 | 0.6 | 0.32 | 0.4 | 1.32 |
3 | 성동구 | 0.28 | 0.24 | 0.44 | 0.96 |
4 | 광진구 | 0.08 | 0.2 | 0.32 | 0.6 |
5 | 동대문구 | 0.36 | 0.4 | 0.2 | 0.96 |
6 | 중랑구 | 0.4 | 0.44 | 0.72 | 1.56 |
7 | 성북구 | 0.44 | 0.84 | 0.76 | 2.04 |
8 | 강북구 | 0.24 | 0.48 | 0.56 | 1.28 |
9 | 도봉구 | 0.16 | 0.16 | 0.08 | 0.4 |
10 | 노원구 | 0.84 | 0.8 | 0.48 | 2.12 |
11 | 은평구 | 0.64 | 0.88 | 0.84 | 2.36 |
12 | 서대문구 | 0.32 | 0.08 | 0.24 | 0.64 |
13 | 마포구 | 0.72 | 0.56 | 0.52 | 1.8 |
14 | 양천구 | 0.48 | 0.28 | 0.36 | 1.12 |
15 | 강서구 | 0.88 | 0.68 | 0.92 | 2.48 |
16 | 구로구 | 0.52 | 0.52 | 0.68 | 1.72 |
17 | 금천구 | 0.04 | 0.04 | 0.12 | 0.2 |
18 | 영등포구 | 0.8 | 0.6 | 0.8 | 2.2 |
19 | 동작구 | 0.2 | 0.36 | 0.16 | 0.72 |
20 | 관악구 | 0.56 | 0.76 | 0.88 | 2.2 |
21 | 서초구 | 1.0 | 1.0 | 0.96 | 2.96 |
22 | 강남구 | 0.96 | 0.96 | 1.0 | 2.92 |
23 | 송파구 | 0.92 | 0.92 | 0.6 | 2.44 |
24 | 강동구 | 0.68 | 0.64 | 0.64 | 1.96 |
1.3. 총 치안도 산출¶
In [196]:
index_df1 = crime_index_df2
In [197]:
index_df1.head()
Out[197]:
자치구 | 살인_안전지수 | 강도_안전지수 | 강간강제추행_안전지수 | 절도_안전지수 | 폭행_안전지수 | 범죄안전지수_합계 | |
---|---|---|---|---|---|---|---|
0 | 종로구 | 0.24 | 0.18 | 0.48 | 0.72 | 0.6 | 2.22 |
1 | 중구 | 0.9 | 0.5 | 0.56 | 0.36 | 0.8 | 3.12 |
2 | 용산구 | 0.54 | 0.32 | 0.36 | 0.76 | 0.72 | 2.7 |
3 | 성동구 | 0.54 | 0.8 | 0.92 | 0.84 | 1.0 | 4.1 |
4 | 광진구 | 0.9 | 0.64 | 0.32 | 0.32 | 0.64 | 2.82 |
In [198]:
index_df.head()
Out[198]:
자치구 | 가로등_지수 | 치안유지기관_지수 | cctv_지수 | 치안지수_합계 | |
---|---|---|---|---|---|
0 | 종로구 | 0.76 | 0.72 | 0.28 | 1.76 |
1 | 중구 | 0.12 | 0.12 | 0.04 | 0.28 |
2 | 용산구 | 0.6 | 0.32 | 0.4 | 1.32 |
3 | 성동구 | 0.28 | 0.24 | 0.44 | 0.96 |
4 | 광진구 | 0.08 | 0.2 | 0.32 | 0.6 |
In [199]:
all_df = index_df1.merge(index_df, on = '자치구', how = 'inner')
all_df
Out[199]:
자치구 | 살인_안전지수 | 강도_안전지수 | 강간강제추행_안전지수 | 절도_안전지수 | 폭행_안전지수 | 범죄안전지수_합계 | 가로등_지수 | 치안유지기관_지수 | cctv_지수 | 치안지수_합계 | |
---|---|---|---|---|---|---|---|---|---|---|---|
0 | 종로구 | 0.24 | 0.18 | 0.48 | 0.72 | 0.6 | 2.22 | 0.76 | 0.72 | 0.28 | 1.76 |
1 | 중구 | 0.9 | 0.5 | 0.56 | 0.36 | 0.8 | 3.12 | 0.12 | 0.12 | 0.04 | 0.28 |
2 | 용산구 | 0.54 | 0.32 | 0.36 | 0.76 | 0.72 | 2.7 | 0.6 | 0.32 | 0.4 | 1.32 |
3 | 성동구 | 0.54 | 0.8 | 0.92 | 0.84 | 1.0 | 4.1 | 0.28 | 0.24 | 0.44 | 0.96 |
4 | 광진구 | 0.9 | 0.64 | 0.32 | 0.32 | 0.64 | 2.82 | 0.08 | 0.2 | 0.32 | 0.6 |
5 | 동대문구 | 0.12 | 0.32 | 0.72 | 0.56 | 0.56 | 2.28 | 0.36 | 0.4 | 0.2 | 0.96 |
6 | 중랑구 | 0.12 | 0.5 | 0.6 | 0.48 | 0.36 | 2.06 | 0.4 | 0.44 | 0.72 | 1.56 |
7 | 성북구 | 0.7 | 0.8 | 0.84 | 0.92 | 0.88 | 4.14 | 0.44 | 0.84 | 0.76 | 2.04 |
8 | 강북구 | 0.24 | 0.5 | 0.78 | 1.0 | 0.52 | 3.04 | 0.24 | 0.48 | 0.56 | 1.28 |
9 | 도봉구 | 1.0 | 0.94 | 1.0 | 0.96 | 0.96 | 4.86 | 0.16 | 0.16 | 0.08 | 0.4 |
10 | 노원구 | 0.7 | 0.8 | 0.68 | 0.6 | 0.32 | 3.1 | 0.84 | 0.8 | 0.48 | 2.12 |
11 | 은평구 | 0.7 | 0.64 | 0.64 | 0.64 | 0.48 | 3.1 | 0.64 | 0.88 | 0.84 | 2.36 |
12 | 서대문구 | 0.82 | 0.94 | 0.78 | 0.8 | 0.92 | 4.26 | 0.32 | 0.08 | 0.24 | 0.64 |
13 | 마포구 | 0.24 | 0.64 | 0.16 | 0.52 | 0.44 | 2.0 | 0.72 | 0.56 | 0.52 | 1.8 |
14 | 양천구 | 0.54 | 0.8 | 0.96 | 0.44 | 0.76 | 3.5 | 0.48 | 0.28 | 0.36 | 1.12 |
15 | 강서구 | 0.12 | 0.32 | 0.28 | 0.28 | 0.2 | 1.2 | 0.88 | 0.68 | 0.92 | 2.48 |
16 | 구로구 | 0.4 | 0.5 | 0.44 | 0.24 | 0.24 | 1.82 | 0.52 | 0.52 | 0.68 | 1.72 |
17 | 금천구 | 0.7 | 0.18 | 0.88 | 0.88 | 0.84 | 3.48 | 0.04 | 0.04 | 0.12 | 0.2 |
18 | 영등포구 | 0.32 | 0.32 | 0.2 | 0.16 | 0.08 | 1.08 | 0.8 | 0.6 | 0.8 | 2.2 |
19 | 동작구 | 0.96 | 1.0 | 0.4 | 0.68 | 0.68 | 3.72 | 0.2 | 0.36 | 0.16 | 0.72 |
20 | 관악구 | 0.04 | 0.8 | 0.08 | 0.12 | 0.16 | 1.2 | 0.56 | 0.76 | 0.88 | 2.2 |
21 | 서초구 | 0.54 | 0.32 | 0.12 | 0.2 | 0.28 | 1.46 | 1.0 | 1.0 | 0.96 | 2.96 |
22 | 강남구 | 0.4 | 0.08 | 0.04 | 0.04 | 0.04 | 0.6 | 0.96 | 0.96 | 1.0 | 2.92 |
23 | 송파구 | 0.4 | 0.12 | 0.24 | 0.08 | 0.12 | 0.96 | 0.92 | 0.92 | 0.6 | 2.44 |
24 | 강동구 | 0.82 | 0.04 | 0.52 | 0.4 | 0.4 | 2.18 | 0.68 | 0.64 | 0.64 | 1.96 |
In [210]:
all_df['치안도'] = all_df.범죄안전지수_합계 + all_df.치안지수_합계
In [211]:
all_df
Out[211]:
자치구 | 살인_안전지수 | 강도_안전지수 | 강간강제추행_안전지수 | 절도_안전지수 | 폭행_안전지수 | 범죄안전지수_합계 | 가로등_지수 | 치안유지기관_지수 | cctv_지수 | 치안지수_합계 | 치안도 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 종로구 | 0.24 | 0.18 | 0.48 | 0.72 | 0.6 | 2.22 | 0.76 | 0.72 | 0.28 | 1.76 | 3.98 |
1 | 중구 | 0.9 | 0.5 | 0.56 | 0.36 | 0.8 | 3.12 | 0.12 | 0.12 | 0.04 | 0.28 | 3.4 |
2 | 용산구 | 0.54 | 0.32 | 0.36 | 0.76 | 0.72 | 2.7 | 0.6 | 0.32 | 0.4 | 1.32 | 4.02 |
3 | 성동구 | 0.54 | 0.8 | 0.92 | 0.84 | 1.0 | 4.1 | 0.28 | 0.24 | 0.44 | 0.96 | 5.06 |
4 | 광진구 | 0.9 | 0.64 | 0.32 | 0.32 | 0.64 | 2.82 | 0.08 | 0.2 | 0.32 | 0.6 | 3.42 |
5 | 동대문구 | 0.12 | 0.32 | 0.72 | 0.56 | 0.56 | 2.28 | 0.36 | 0.4 | 0.2 | 0.96 | 3.24 |
6 | 중랑구 | 0.12 | 0.5 | 0.6 | 0.48 | 0.36 | 2.06 | 0.4 | 0.44 | 0.72 | 1.56 | 3.62 |
7 | 성북구 | 0.7 | 0.8 | 0.84 | 0.92 | 0.88 | 4.14 | 0.44 | 0.84 | 0.76 | 2.04 | 6.18 |
8 | 강북구 | 0.24 | 0.5 | 0.78 | 1.0 | 0.52 | 3.04 | 0.24 | 0.48 | 0.56 | 1.28 | 4.32 |
9 | 도봉구 | 1.0 | 0.94 | 1.0 | 0.96 | 0.96 | 4.86 | 0.16 | 0.16 | 0.08 | 0.4 | 5.26 |
10 | 노원구 | 0.7 | 0.8 | 0.68 | 0.6 | 0.32 | 3.1 | 0.84 | 0.8 | 0.48 | 2.12 | 5.22 |
11 | 은평구 | 0.7 | 0.64 | 0.64 | 0.64 | 0.48 | 3.1 | 0.64 | 0.88 | 0.84 | 2.36 | 5.46 |
12 | 서대문구 | 0.82 | 0.94 | 0.78 | 0.8 | 0.92 | 4.26 | 0.32 | 0.08 | 0.24 | 0.64 | 4.9 |
13 | 마포구 | 0.24 | 0.64 | 0.16 | 0.52 | 0.44 | 2.0 | 0.72 | 0.56 | 0.52 | 1.8 | 3.8 |
14 | 양천구 | 0.54 | 0.8 | 0.96 | 0.44 | 0.76 | 3.5 | 0.48 | 0.28 | 0.36 | 1.12 | 4.62 |
15 | 강서구 | 0.12 | 0.32 | 0.28 | 0.28 | 0.2 | 1.2 | 0.88 | 0.68 | 0.92 | 2.48 | 3.68 |
16 | 구로구 | 0.4 | 0.5 | 0.44 | 0.24 | 0.24 | 1.82 | 0.52 | 0.52 | 0.68 | 1.72 | 3.54 |
17 | 금천구 | 0.7 | 0.18 | 0.88 | 0.88 | 0.84 | 3.48 | 0.04 | 0.04 | 0.12 | 0.2 | 3.68 |
18 | 영등포구 | 0.32 | 0.32 | 0.2 | 0.16 | 0.08 | 1.08 | 0.8 | 0.6 | 0.8 | 2.2 | 3.28 |
19 | 동작구 | 0.96 | 1.0 | 0.4 | 0.68 | 0.68 | 3.72 | 0.2 | 0.36 | 0.16 | 0.72 | 4.44 |
20 | 관악구 | 0.04 | 0.8 | 0.08 | 0.12 | 0.16 | 1.2 | 0.56 | 0.76 | 0.88 | 2.2 | 3.4 |
21 | 서초구 | 0.54 | 0.32 | 0.12 | 0.2 | 0.28 | 1.46 | 1.0 | 1.0 | 0.96 | 2.96 | 4.42 |
22 | 강남구 | 0.4 | 0.08 | 0.04 | 0.04 | 0.04 | 0.6 | 0.96 | 0.96 | 1.0 | 2.92 | 3.52 |
23 | 송파구 | 0.4 | 0.12 | 0.24 | 0.08 | 0.12 | 0.96 | 0.92 | 0.92 | 0.6 | 2.44 | 3.4 |
24 | 강동구 | 0.82 | 0.04 | 0.52 | 0.4 | 0.4 | 2.18 | 0.68 | 0.64 | 0.64 | 1.96 | 4.14 |
In [212]:
all_df.to_csv('치안도.csv',encoding = 'CP949')
2. 여성안심택배함 위치 선정¶
- 택배함 위치 선정에는 아래 데이터를 고려합니다.
- 자치구별 치안도
- 자치구별 택배 물류량
- 자치구별 여성 1인가구수
- 경찰청 성범죄 피해 현황_여성
In [213]:
# 이전에 구한 치안도 데이터(치안도 합계만 사용)
crime_index = pd.read_csv('치안도.csv', encoding = 'CP949')
crime_index
Out[213]:
Unnamed: 0 | 자치구 | 살인_안전지수 | 강도_안전지수 | 강간강제추행_안전지수 | 절도_안전지수 | 폭행_안전지수 | 범죄안전지수_합계 | 가로등_지수 | 치안유지기관_지수 | cctv_지수 | 치안지수_합계 | 치안도 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 0 | 종로구 | 0.24 | 0.18 | 0.48 | 0.72 | 0.60 | 2.22 | 0.76 | 0.72 | 0.28 | 1.76 | 3.98 |
1 | 1 | 중구 | 0.90 | 0.50 | 0.56 | 0.36 | 0.80 | 3.12 | 0.12 | 0.12 | 0.04 | 0.28 | 3.40 |
2 | 2 | 용산구 | 0.54 | 0.32 | 0.36 | 0.76 | 0.72 | 2.70 | 0.60 | 0.32 | 0.40 | 1.32 | 4.02 |
3 | 3 | 성동구 | 0.54 | 0.80 | 0.92 | 0.84 | 1.00 | 4.10 | 0.28 | 0.24 | 0.44 | 0.96 | 5.06 |
4 | 4 | 광진구 | 0.90 | 0.64 | 0.32 | 0.32 | 0.64 | 2.82 | 0.08 | 0.20 | 0.32 | 0.60 | 3.42 |
5 | 5 | 동대문구 | 0.12 | 0.32 | 0.72 | 0.56 | 0.56 | 2.28 | 0.36 | 0.40 | 0.20 | 0.96 | 3.24 |
6 | 6 | 중랑구 | 0.12 | 0.50 | 0.60 | 0.48 | 0.36 | 2.06 | 0.40 | 0.44 | 0.72 | 1.56 | 3.62 |
7 | 7 | 성북구 | 0.70 | 0.80 | 0.84 | 0.92 | 0.88 | 4.14 | 0.44 | 0.84 | 0.76 | 2.04 | 6.18 |
8 | 8 | 강북구 | 0.24 | 0.50 | 0.78 | 1.00 | 0.52 | 3.04 | 0.24 | 0.48 | 0.56 | 1.28 | 4.32 |
9 | 9 | 도봉구 | 1.00 | 0.94 | 1.00 | 0.96 | 0.96 | 4.86 | 0.16 | 0.16 | 0.08 | 0.40 | 5.26 |
10 | 10 | 노원구 | 0.70 | 0.80 | 0.68 | 0.60 | 0.32 | 3.10 | 0.84 | 0.80 | 0.48 | 2.12 | 5.22 |
11 | 11 | 은평구 | 0.70 | 0.64 | 0.64 | 0.64 | 0.48 | 3.10 | 0.64 | 0.88 | 0.84 | 2.36 | 5.46 |
12 | 12 | 서대문구 | 0.82 | 0.94 | 0.78 | 0.80 | 0.92 | 4.26 | 0.32 | 0.08 | 0.24 | 0.64 | 4.90 |
13 | 13 | 마포구 | 0.24 | 0.64 | 0.16 | 0.52 | 0.44 | 2.00 | 0.72 | 0.56 | 0.52 | 1.80 | 3.80 |
14 | 14 | 양천구 | 0.54 | 0.80 | 0.96 | 0.44 | 0.76 | 3.50 | 0.48 | 0.28 | 0.36 | 1.12 | 4.62 |
15 | 15 | 강서구 | 0.12 | 0.32 | 0.28 | 0.28 | 0.20 | 1.20 | 0.88 | 0.68 | 0.92 | 2.48 | 3.68 |
16 | 16 | 구로구 | 0.40 | 0.50 | 0.44 | 0.24 | 0.24 | 1.82 | 0.52 | 0.52 | 0.68 | 1.72 | 3.54 |
17 | 17 | 금천구 | 0.70 | 0.18 | 0.88 | 0.88 | 0.84 | 3.48 | 0.04 | 0.04 | 0.12 | 0.20 | 3.68 |
18 | 18 | 영등포구 | 0.32 | 0.32 | 0.20 | 0.16 | 0.08 | 1.08 | 0.80 | 0.60 | 0.80 | 2.20 | 3.28 |
19 | 19 | 동작구 | 0.96 | 1.00 | 0.40 | 0.68 | 0.68 | 3.72 | 0.20 | 0.36 | 0.16 | 0.72 | 4.44 |
20 | 20 | 관악구 | 0.04 | 0.80 | 0.08 | 0.12 | 0.16 | 1.20 | 0.56 | 0.76 | 0.88 | 2.20 | 3.40 |
21 | 21 | 서초구 | 0.54 | 0.32 | 0.12 | 0.20 | 0.28 | 1.46 | 1.00 | 1.00 | 0.96 | 2.96 | 4.42 |
22 | 22 | 강남구 | 0.40 | 0.08 | 0.04 | 0.04 | 0.04 | 0.60 | 0.96 | 0.96 | 1.00 | 2.92 | 3.52 |
23 | 23 | 송파구 | 0.40 | 0.12 | 0.24 | 0.08 | 0.12 | 0.96 | 0.92 | 0.92 | 0.60 | 2.44 | 3.40 |
24 | 24 | 강동구 | 0.82 | 0.04 | 0.52 | 0.40 | 0.40 | 2.18 | 0.68 | 0.64 | 0.64 | 1.96 | 4.14 |
In [214]:
# 택배 물동량 데이터(합계 사용)
pakage_df = pd.read_csv('pre_자치구단위 착지 데이터.csv')
pakage_df
Out[214]:
Unnamed: 0 | 자치구 | 합계 | 대분류_착지물동량_가구/인테리어(E_C_01) | 대분류_착지물동량_기타(E_C_02) | 대분류_착지물동량_도서/음반(E_C_03) | 대분류_착지물동량_디지털/가전(E_C_04) | 대분류_착지물동량_생활/건강(E_C_05) | 대분류_착지물동량_스포츠/레저(E_C_06) | 대분류_착지물동량_식품(E_C_07) | 대분류_착지물동량_출산/육아(E_C_08) | 대분류_착지물동량_패션의류(E_C_09) | 대분류_착지물동량_패션잡화(E_C_10) | 대분류_착지물동량_화장품/미용(E_C_11) | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 0 | 강남구 | 1263894 | 25035 | 281991 | 27333 | 51770 | 198635 | 13054 | 173813 | 14363 | 308202 | 56279 | 113419 |
1 | 1 | 서초구 | 1063591 | 19508 | 259466 | 48374 | 38415 | 165677 | 17343 | 175048 | 12809 | 192657 | 49330 | 84964 |
2 | 2 | 서대문구 | 1462383 | 16904 | 384154 | 29689 | 46772 | 76597 | 17717 | 466881 | 14987 | 319933 | 50778 | 37971 |
3 | 3 | 강서구 | 998425 | 46705 | 216690 | 49027 | 30791 | 292619 | 12504 | 161749 | 8194 | 81789 | 37966 | 60391 |
4 | 4 | 성동구 | 1318286 | 35119 | 240743 | 94856 | 88985 | 158192 | 16432 | 262624 | 11800 | 181675 | 54699 | 173161 |
5 | 5 | 성북구 | 954037 | 34412 | 248623 | 45362 | 32157 | 129171 | 11961 | 129382 | 10986 | 157248 | 40588 | 114147 |
6 | 6 | 강북구 | 1129221 | 24601 | 274533 | 32974 | 49035 | 114169 | 22840 | 286835 | 11935 | 174292 | 53061 | 84946 |
7 | 7 | 구로구 | 1246786 | 50966 | 280295 | 100624 | 41293 | 100387 | 7275 | 312770 | 4139 | 189141 | 43962 | 115934 |
8 | 8 | 마포구 | 877787 | 22408 | 158557 | 42586 | 46297 | 156728 | 10300 | 138826 | 14946 | 114697 | 68521 | 103921 |
9 | 9 | 중구 | 1368152 | 21845 | 575340 | 59529 | 53182 | 98248 | 9099 | 274131 | 13887 | 149514 | 53259 | 60118 |
10 | 10 | 관악구 | 1346302 | 27617 | 403293 | 92849 | 48138 | 149614 | 14248 | 216126 | 9590 | 240708 | 71545 | 72574 |
11 | 11 | 금천구 | 1014422 | 21538 | 166164 | 60468 | 42454 | 122456 | 12860 | 274197 | 16453 | 136463 | 105229 | 56140 |
12 | 12 | 중랑구 | 1056042 | 29698 | 250412 | 66154 | 32538 | 122674 | 13894 | 200381 | 11334 | 169737 | 64916 | 94304 |
13 | 13 | 양천구 | 1344295 | 28260 | 314270 | 30782 | 77412 | 177142 | 18006 | 280956 | 21391 | 289280 | 50557 | 56239 |
14 | 14 | 동작구 | 1363882 | 12945 | 484868 | 36308 | 52599 | 262019 | 15412 | 200511 | 5765 | 168042 | 28373 | 97040 |
15 | 15 | 영등포구 | 1199353 | 24935 | 210682 | 132970 | 54951 | 230299 | 18028 | 207414 | 10079 | 163554 | 70579 | 75862 |
16 | 16 | 광진구 | 977798 | 34555 | 202879 | 80819 | 62332 | 165524 | 11540 | 150618 | 10665 | 121617 | 85672 | 51577 |
17 | 17 | 은평구 | 1267147 | 25798 | 265316 | 50807 | 69997 | 121469 | 18014 | 252699 | 17116 | 225627 | 64619 | 155685 |
18 | 18 | 동대문구 | 1175063 | 40587 | 329217 | 42277 | 60615 | 150479 | 16835 | 256065 | 7271 | 119752 | 60991 | 90974 |
19 | 19 | 종로구 | 1300884 | 28037 | 217101 | 58980 | 100942 | 136876 | 9183 | 269503 | 6523 | 211620 | 100038 | 162081 |
20 | 20 | 송파구 | 1249014 | 15945 | 260860 | 72158 | 66037 | 156949 | 33264 | 328741 | 23651 | 177532 | 37588 | 76289 |
21 | 21 | 도봉구 | 991098 | 20552 | 143620 | 54883 | 26743 | 93015 | 16178 | 370977 | 13807 | 120724 | 36450 | 94149 |
22 | 22 | 강동구 | 1110743 | 14712 | 320868 | 55966 | 39598 | 89612 | 16200 | 242071 | 7919 | 191783 | 62760 | 69254 |
23 | 23 | 용산구 | 1084532 | 26945 | 236377 | 41941 | 62431 | 107078 | 24825 | 208159 | 13544 | 213099 | 61580 | 88553 |
24 | 24 | 노원구 | 1384308 | 17674 | 296127 | 51875 | 47013 | 174340 | 29941 | 442943 | 14245 | 154134 | 60318 | 95698 |
In [215]:
female_df = pd.read_csv('pre_2020_서울시_자치구별_연령별_여성1인가구수.csv')
female_df
Out[215]:
자치구 | 합계 | 20세미만 | 20~24세 | 25~29세 | 30~34세 | 35~39세 | 40~44세 | 45~49세 | 50~54세 | 55~59세 | 60~64세 | 65~69세 | 70~74세 | 75~79세 | 80~84세 | 85세이상 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 합계 | 739702 | 8840 | 81388 | 124199 | 81326 | 55945 | 40374 | 37856 | 33911 | 38624 | 52516 | 48062 | 45288 | 40864 | 30105 | 20404 |
1 | 종로구 | 13320 | 264 | 2122 | 1882 | 1259 | 938 | 742 | 760 | 654 | 691 | 812 | 712 | 732 | 778 | 563 | 411 |
2 | 중구 | 11797 | 295 | 1456 | 1639 | 1244 | 896 | 659 | 621 | 596 | 656 | 785 | 718 | 697 | 649 | 524 | 362 |
3 | 용산구 | 20001 | 412 | 2138 | 3005 | 2499 | 1874 | 1345 | 1175 | 952 | 921 | 1088 | 1017 | 991 | 1054 | 881 | 649 |
4 | 성동구 | 21711 | 434 | 2815 | 3298 | 2216 | 1628 | 1237 | 1221 | 1027 | 1115 | 1411 | 1313 | 1249 | 1243 | 953 | 551 |
5 | 광진구 | 32731 | 341 | 4601 | 6993 | 4171 | 2733 | 1781 | 1477 | 1457 | 1553 | 1955 | 1597 | 1383 | 1252 | 857 | 580 |
6 | 동대문구 | 30686 | 938 | 6417 | 4621 | 2512 | 1629 | 1304 | 1234 | 1132 | 1406 | 1965 | 1832 | 1867 | 1773 | 1278 | 778 |
7 | 중랑구 | 28537 | 124 | 1593 | 3489 | 2550 | 1890 | 1508 | 1554 | 1727 | 2230 | 2870 | 2535 | 2254 | 1979 | 1331 | 903 |
8 | 성북구 | 34281 | 1291 | 7468 | 4578 | 2388 | 1775 | 1410 | 1482 | 1395 | 1549 | 2223 | 2066 | 2103 | 2000 | 1538 | 1015 |
9 | 강북구 | 24727 | 224 | 2257 | 2555 | 1532 | 1206 | 1078 | 1342 | 1420 | 1818 | 2395 | 2253 | 2273 | 2213 | 1365 | 796 |
10 | 도봉구 | 19446 | 158 | 1222 | 1465 | 1089 | 996 | 953 | 1113 | 1236 | 1580 | 2079 | 1817 | 1777 | 1705 | 1368 | 888 |
11 | 노원구 | 32737 | 408 | 3331 | 2266 | 1607 | 1531 | 1456 | 1709 | 1792 | 2172 | 3241 | 3202 | 3151 | 3039 | 2250 | 1582 |
12 | 은평구 | 32632 | 150 | 2048 | 4388 | 3019 | 2369 | 1825 | 1926 | 1750 | 2051 | 2984 | 2611 | 2538 | 2330 | 1672 | 971 |
13 | 서대문구 | 28504 | 757 | 6215 | 4459 | 2470 | 1679 | 1218 | 1243 | 1096 | 1217 | 1587 | 1479 | 1545 | 1532 | 1242 | 765 |
14 | 마포구 | 35908 | 368 | 4558 | 7334 | 5093 | 3469 | 2246 | 2032 | 1396 | 1296 | 1614 | 1483 | 1599 | 1502 | 1162 | 756 |
15 | 양천구 | 21378 | 77 | 810 | 2138 | 1664 | 1400 | 1174 | 1288 | 1186 | 1562 | 2284 | 2123 | 1878 | 1626 | 1290 | 878 |
16 | 강서구 | 47034 | 203 | 3291 | 9363 | 5985 | 3727 | 2579 | 2229 | 2047 | 2485 | 3658 | 3251 | 2722 | 2351 | 1769 | 1374 |
17 | 구로구 | 25886 | 112 | 1798 | 4072 | 2769 | 1824 | 1374 | 1405 | 1241 | 1544 | 2144 | 2050 | 1906 | 1603 | 1264 | 780 |
18 | 금천구 | 19487 | 86 | 1554 | 3627 | 1992 | 1233 | 923 | 965 | 1102 | 1298 | 1607 | 1436 | 1246 | 1158 | 765 | 495 |
19 | 영등포구 | 31901 | 116 | 2561 | 7219 | 4582 | 2633 | 1700 | 1560 | 1271 | 1420 | 1897 | 1725 | 1636 | 1526 | 1213 | 842 |
20 | 동작구 | 33774 | 630 | 5262 | 7039 | 3902 | 2209 | 1522 | 1375 | 1244 | 1304 | 1911 | 1875 | 1924 | 1584 | 1193 | 800 |
21 | 관악구 | 61568 | 553 | 9914 | 17461 | 8444 | 4246 | 2567 | 2071 | 1895 | 2065 | 2798 | 2505 | 2418 | 2199 | 1532 | 900 |
22 | 서초구 | 24800 | 392 | 1974 | 3699 | 3529 | 2633 | 1907 | 1601 | 1264 | 1179 | 1525 | 1474 | 1308 | 1024 | 715 | 576 |
23 | 강남구 | 39553 | 252 | 2483 | 6592 | 6302 | 4984 | 3287 | 2517 | 1713 | 1627 | 2178 | 2106 | 1914 | 1560 | 1073 | 965 |
24 | 송파구 | 40804 | 159 | 2140 | 7015 | 5796 | 4400 | 2944 | 2419 | 1910 | 2176 | 2952 | 2636 | 2307 | 1717 | 1230 | 1003 |
25 | 강동구 | 26499 | 96 | 1360 | 4002 | 2712 | 2043 | 1635 | 1537 | 1408 | 1709 | 2553 | 2246 | 1870 | 1467 | 1077 | 784 |
In [216]:
# 각 연령대별 비중을 계산할 피해자 현황
# 2020년대만 고려할 예정
female_crime_df = pd.read_csv('pre_경찰청_성범죄 피해자 현황_여성.csv')
female_crime_df
Out[216]:
연도 | 여자_20세_이하 | 여자_30세이하 | 여자_40세이하 | 여자_50세이하 | 여자_60세이하 | 여자_60세초과 | |
---|---|---|---|---|---|---|---|
0 | 2016 | 7791 | 9598 | 3332 | 2416 | 1612 | 561 |
1 | 2017 | 8706 | 11220 | 3537 | 2499 | 1650 | 654 |
2 | 2018 | 7900 | 10890 | 3522 | 2545 | 1669 | 727 |
3 | 2019 | 7827 | 10812 | 3788 | 2552 | 1796 | 754 |
4 | 2020 | 6962 | 10541 | 3817 | 2418 | 1758 | 802 |
In [217]:
# 1. 연령대별 비중을 계산
# 가장 많은 인원을 차지하는 연령대를 1로 두고, 나머지 연령대 비율을 산출
temp_data = female_crime_df.loc[4, '여자_20세_이하' : '여자_60세초과']
temp_data
Out[217]:
여자_20세_이하 6962 여자_30세이하 10541 여자_40세이하 3817 여자_50세이하 2418 여자_60세이하 1758 여자_60세초과 802 Name: 4, dtype: int64
In [218]:
# 30세 이하 인원이 가장 많은 것을 확인할 수 있음
# 30세 이하를 1로 두고, 나머지 연령대 비중 계산 실시
temp_data.rank(ascending = False)
Out[218]:
여자_20세_이하 2.0 여자_30세이하 1.0 여자_40세이하 3.0 여자_50세이하 4.0 여자_60세이하 5.0 여자_60세초과 6.0 Name: 4, dtype: float64
In [219]:
standard_value = temp_data['여자_30세이하']
standard_value
Out[219]:
10541
In [220]:
female_ratio = temp_data / standard_value
female_ratio
Out[220]:
여자_20세_이하 0.660469 여자_30세이하 1.000000 여자_40세이하 0.362110 여자_50세이하 0.229390 여자_60세이하 0.166777 여자_60세초과 0.076084 Name: 4, dtype: float64
In [221]:
female_df['여자_30세이하'] = female_df['20~24세'] + female_df['25~29세']
female_df.drop(['20~24세','25~29세'], axis = 'columns', inplace = True)
In [222]:
female_df
Out[222]:
자치구 | 합계 | 20세미만 | 30~34세 | 35~39세 | 40~44세 | 45~49세 | 50~54세 | 55~59세 | 60~64세 | 65~69세 | 70~74세 | 75~79세 | 80~84세 | 85세이상 | 여자_30세이하 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 합계 | 739702 | 8840 | 81326 | 55945 | 40374 | 37856 | 33911 | 38624 | 52516 | 48062 | 45288 | 40864 | 30105 | 20404 | 205587 |
1 | 종로구 | 13320 | 264 | 1259 | 938 | 742 | 760 | 654 | 691 | 812 | 712 | 732 | 778 | 563 | 411 | 4004 |
2 | 중구 | 11797 | 295 | 1244 | 896 | 659 | 621 | 596 | 656 | 785 | 718 | 697 | 649 | 524 | 362 | 3095 |
3 | 용산구 | 20001 | 412 | 2499 | 1874 | 1345 | 1175 | 952 | 921 | 1088 | 1017 | 991 | 1054 | 881 | 649 | 5143 |
4 | 성동구 | 21711 | 434 | 2216 | 1628 | 1237 | 1221 | 1027 | 1115 | 1411 | 1313 | 1249 | 1243 | 953 | 551 | 6113 |
5 | 광진구 | 32731 | 341 | 4171 | 2733 | 1781 | 1477 | 1457 | 1553 | 1955 | 1597 | 1383 | 1252 | 857 | 580 | 11594 |
6 | 동대문구 | 30686 | 938 | 2512 | 1629 | 1304 | 1234 | 1132 | 1406 | 1965 | 1832 | 1867 | 1773 | 1278 | 778 | 11038 |
7 | 중랑구 | 28537 | 124 | 2550 | 1890 | 1508 | 1554 | 1727 | 2230 | 2870 | 2535 | 2254 | 1979 | 1331 | 903 | 5082 |
8 | 성북구 | 34281 | 1291 | 2388 | 1775 | 1410 | 1482 | 1395 | 1549 | 2223 | 2066 | 2103 | 2000 | 1538 | 1015 | 12046 |
9 | 강북구 | 24727 | 224 | 1532 | 1206 | 1078 | 1342 | 1420 | 1818 | 2395 | 2253 | 2273 | 2213 | 1365 | 796 | 4812 |
10 | 도봉구 | 19446 | 158 | 1089 | 996 | 953 | 1113 | 1236 | 1580 | 2079 | 1817 | 1777 | 1705 | 1368 | 888 | 2687 |
11 | 노원구 | 32737 | 408 | 1607 | 1531 | 1456 | 1709 | 1792 | 2172 | 3241 | 3202 | 3151 | 3039 | 2250 | 1582 | 5597 |
12 | 은평구 | 32632 | 150 | 3019 | 2369 | 1825 | 1926 | 1750 | 2051 | 2984 | 2611 | 2538 | 2330 | 1672 | 971 | 6436 |
13 | 서대문구 | 28504 | 757 | 2470 | 1679 | 1218 | 1243 | 1096 | 1217 | 1587 | 1479 | 1545 | 1532 | 1242 | 765 | 10674 |
14 | 마포구 | 35908 | 368 | 5093 | 3469 | 2246 | 2032 | 1396 | 1296 | 1614 | 1483 | 1599 | 1502 | 1162 | 756 | 11892 |
15 | 양천구 | 21378 | 77 | 1664 | 1400 | 1174 | 1288 | 1186 | 1562 | 2284 | 2123 | 1878 | 1626 | 1290 | 878 | 2948 |
16 | 강서구 | 47034 | 203 | 5985 | 3727 | 2579 | 2229 | 2047 | 2485 | 3658 | 3251 | 2722 | 2351 | 1769 | 1374 | 12654 |
17 | 구로구 | 25886 | 112 | 2769 | 1824 | 1374 | 1405 | 1241 | 1544 | 2144 | 2050 | 1906 | 1603 | 1264 | 780 | 5870 |
18 | 금천구 | 19487 | 86 | 1992 | 1233 | 923 | 965 | 1102 | 1298 | 1607 | 1436 | 1246 | 1158 | 765 | 495 | 5181 |
19 | 영등포구 | 31901 | 116 | 4582 | 2633 | 1700 | 1560 | 1271 | 1420 | 1897 | 1725 | 1636 | 1526 | 1213 | 842 | 9780 |
20 | 동작구 | 33774 | 630 | 3902 | 2209 | 1522 | 1375 | 1244 | 1304 | 1911 | 1875 | 1924 | 1584 | 1193 | 800 | 12301 |
21 | 관악구 | 61568 | 553 | 8444 | 4246 | 2567 | 2071 | 1895 | 2065 | 2798 | 2505 | 2418 | 2199 | 1532 | 900 | 27375 |
22 | 서초구 | 24800 | 392 | 3529 | 2633 | 1907 | 1601 | 1264 | 1179 | 1525 | 1474 | 1308 | 1024 | 715 | 576 | 5673 |
23 | 강남구 | 39553 | 252 | 6302 | 4984 | 3287 | 2517 | 1713 | 1627 | 2178 | 2106 | 1914 | 1560 | 1073 | 965 | 9075 |
24 | 송파구 | 40804 | 159 | 5796 | 4400 | 2944 | 2419 | 1910 | 2176 | 2952 | 2636 | 2307 | 1717 | 1230 | 1003 | 9155 |
25 | 강동구 | 26499 | 96 | 2712 | 2043 | 1635 | 1537 | 1408 | 1709 | 2553 | 2246 | 1870 | 1467 | 1077 | 784 | 5362 |
In [223]:
female_df['여자_40세이하'] = female_df['30~34세'] + female_df['35~39세']
female_df.drop(['30~34세','35~39세'], axis = 'columns', inplace = True)
In [224]:
female_df['여자_50세이하'] = female_df['40~44세'] + female_df['45~49세']
female_df.drop(['40~44세','45~49세'], axis = 'columns', inplace = True)
In [225]:
female_df['여자_60세이하'] = female_df['50~54세'] + female_df['55~59세']
female_df.drop(['50~54세','55~59세'], axis = 'columns', inplace = True)
In [226]:
female_df['여자_60세초과'] = female_df['60~64세'] + female_df['65~69세'] + female_df['70~74세'] + female_df['75~79세'] + female_df['80~84세'] + female_df['85세이상']
female_df.drop(['60~64세','65~69세','70~74세','75~79세','80~84세','85세이상'], axis = 'columns', inplace = True)
In [227]:
female_df.drop(['합계'], axis = 'columns', inplace = True)
In [228]:
female_df
Out[228]:
자치구 | 20세미만 | 여자_30세이하 | 여자_40세이하 | 여자_50세이하 | 여자_60세이하 | 여자_60세초과 | |
---|---|---|---|---|---|---|---|
0 | 합계 | 8840 | 205587 | 137271 | 78230 | 72535 | 237239 |
1 | 종로구 | 264 | 4004 | 2197 | 1502 | 1345 | 4008 |
2 | 중구 | 295 | 3095 | 2140 | 1280 | 1252 | 3735 |
3 | 용산구 | 412 | 5143 | 4373 | 2520 | 1873 | 5680 |
4 | 성동구 | 434 | 6113 | 3844 | 2458 | 2142 | 6720 |
5 | 광진구 | 341 | 11594 | 6904 | 3258 | 3010 | 7624 |
6 | 동대문구 | 938 | 11038 | 4141 | 2538 | 2538 | 9493 |
7 | 중랑구 | 124 | 5082 | 4440 | 3062 | 3957 | 11872 |
8 | 성북구 | 1291 | 12046 | 4163 | 2892 | 2944 | 10945 |
9 | 강북구 | 224 | 4812 | 2738 | 2420 | 3238 | 11295 |
10 | 도봉구 | 158 | 2687 | 2085 | 2066 | 2816 | 9634 |
11 | 노원구 | 408 | 5597 | 3138 | 3165 | 3964 | 16465 |
12 | 은평구 | 150 | 6436 | 5388 | 3751 | 3801 | 13106 |
13 | 서대문구 | 757 | 10674 | 4149 | 2461 | 2313 | 8150 |
14 | 마포구 | 368 | 11892 | 8562 | 4278 | 2692 | 8116 |
15 | 양천구 | 77 | 2948 | 3064 | 2462 | 2748 | 10079 |
16 | 강서구 | 203 | 12654 | 9712 | 4808 | 4532 | 15125 |
17 | 구로구 | 112 | 5870 | 4593 | 2779 | 2785 | 9747 |
18 | 금천구 | 86 | 5181 | 3225 | 1888 | 2400 | 6707 |
19 | 영등포구 | 116 | 9780 | 7215 | 3260 | 2691 | 8839 |
20 | 동작구 | 630 | 12301 | 6111 | 2897 | 2548 | 9287 |
21 | 관악구 | 553 | 27375 | 12690 | 4638 | 3960 | 12352 |
22 | 서초구 | 392 | 5673 | 6162 | 3508 | 2443 | 6622 |
23 | 강남구 | 252 | 9075 | 11286 | 5804 | 3340 | 9796 |
24 | 송파구 | 159 | 9155 | 10196 | 5363 | 4086 | 11845 |
25 | 강동구 | 96 | 5362 | 4755 | 3172 | 3117 | 9997 |
In [229]:
female_ratio
Out[229]:
여자_20세_이하 0.660469 여자_30세이하 1.000000 여자_40세이하 0.362110 여자_50세이하 0.229390 여자_60세이하 0.166777 여자_60세초과 0.076084 Name: 4, dtype: float64
In [230]:
for i in range(len(female_ratio)):
female_df.iloc[:,i + 1] = female_df.iloc[:,i + 1] * female_ratio[i]
In [231]:
female_df
Out[231]:
자치구 | 20세미만 | 여자_30세이하 | 여자_40세이하 | 여자_50세이하 | 여자_60세이하 | 여자_60세초과 | |
---|---|---|---|---|---|---|---|
0 | 합계 | 5838.542833 | 205587.0 | 49707.182146 | 17945.179774 | 12097.194763 | 18050.059577 |
1 | 종로구 | 174.363723 | 4004.0 | 795.555355 | 344.543781 | 224.315530 | 304.944123 |
2 | 중구 | 194.838251 | 3095.0 | 774.915093 | 293.619201 | 208.805237 | 284.173228 |
3 | 용산구 | 272.113082 | 5143.0 | 1583.506404 | 578.062802 | 312.373968 | 432.156342 |
4 | 성동구 | 286.643392 | 6113.0 | 1391.950289 | 563.840622 | 357.237074 | 511.283559 |
5 | 광진구 | 225.219808 | 11594.0 | 2500.006451 | 747.352623 | 501.999810 | 580.063372 |
6 | 동대문구 | 619.519590 | 11038.0 | 1499.496917 | 582.191822 | 423.280903 | 722.264112 |
7 | 중랑구 | 81.898112 | 5082.0 | 1607.767764 | 702.392183 | 659.937957 | 903.267622 |
8 | 성북구 | 852.665022 | 12046.0 | 1507.463334 | 663.395883 | 490.992505 | 832.737881 |
9 | 강북구 | 147.944977 | 4812.0 | 991.456788 | 555.123802 | 540.025045 | 859.367233 |
10 | 도봉구 | 104.354046 | 2687.0 | 754.999051 | 473.919742 | 469.645005 | 732.991936 |
11 | 노원구 | 269.471208 | 5597.0 | 1136.300730 | 726.019353 | 661.105398 | 1252.720804 |
12 | 은평구 | 99.070297 | 6436.0 | 1951.047908 | 860.441894 | 633.920691 | 997.155109 |
13 | 서대문구 | 499.974765 | 10674.0 | 1502.393796 | 564.528792 | 385.756000 | 620.083484 |
14 | 마포구 | 243.052462 | 11892.0 | 3100.384593 | 981.330424 | 448.964614 | 617.496632 |
15 | 양천구 | 50.856086 | 2948.0 | 1109.504601 | 564.758182 | 458.304146 | 766.849255 |
16 | 강서구 | 134.075135 | 12654.0 | 3516.810929 | 1102.907125 | 755.834930 | 1150.768428 |
17 | 구로구 | 73.972488 | 5870.0 | 1663.170572 | 637.474813 | 464.474908 | 741.589413 |
18 | 금천구 | 56.800304 | 5181.0 | 1167.804288 | 433.088322 | 400.265629 | 510.294469 |
19 | 영등포구 | 76.614363 | 9780.0 | 2612.622616 | 747.811403 | 448.797837 | 672.505265 |
20 | 동작구 | 416.095247 | 12301.0 | 2212.853335 | 664.542833 | 424.948677 | 706.590836 |
21 | 관악구 | 365.239161 | 27375.0 | 4595.174082 | 1063.910824 | 660.438289 | 939.787876 |
22 | 서초구 | 258.903709 | 5673.0 | 2231.320937 | 804.700123 | 407.437055 | 503.827341 |
23 | 강남구 | 166.438099 | 9075.0 | 4086.771843 | 1331.379566 | 557.036334 | 745.317522 |
24 | 송파구 | 105.014515 | 9155.0 | 3692.072099 | 1230.218575 | 681.452234 | 901.213357 |
25 | 강동구 | 63.404990 | 5362.0 | 1721.832369 | 727.625083 | 519.844986 | 760.610379 |
In [232]:
female_df['합계'] = female_df['20세미만'] + female_df['여자_30세이하'] + female_df['여자_40세이하'] + female_df['여자_50세이하'] + female_df['여자_60세이하'] + female_df['여자_60세초과']
In [233]:
female_df
Out[233]:
자치구 | 20세미만 | 여자_30세이하 | 여자_40세이하 | 여자_50세이하 | 여자_60세이하 | 여자_60세초과 | 합계 | |
---|---|---|---|---|---|---|---|---|
0 | 합계 | 5838.542833 | 205587.0 | 49707.182146 | 17945.179774 | 12097.194763 | 18050.059577 | 309225.159093 |
1 | 종로구 | 174.363723 | 4004.0 | 795.555355 | 344.543781 | 224.315530 | 304.944123 | 5847.722512 |
2 | 중구 | 194.838251 | 3095.0 | 774.915093 | 293.619201 | 208.805237 | 284.173228 | 4851.351010 |
3 | 용산구 | 272.113082 | 5143.0 | 1583.506404 | 578.062802 | 312.373968 | 432.156342 | 8321.212598 |
4 | 성동구 | 286.643392 | 6113.0 | 1391.950289 | 563.840622 | 357.237074 | 511.283559 | 9223.954938 |
5 | 광진구 | 225.219808 | 11594.0 | 2500.006451 | 747.352623 | 501.999810 | 580.063372 | 16148.642064 |
6 | 동대문구 | 619.519590 | 11038.0 | 1499.496917 | 582.191822 | 423.280903 | 722.264112 | 14884.753344 |
7 | 중랑구 | 81.898112 | 5082.0 | 1607.767764 | 702.392183 | 659.937957 | 903.267622 | 9037.263637 |
8 | 성북구 | 852.665022 | 12046.0 | 1507.463334 | 663.395883 | 490.992505 | 832.737881 | 16393.254625 |
9 | 강북구 | 147.944977 | 4812.0 | 991.456788 | 555.123802 | 540.025045 | 859.367233 | 7905.917845 |
10 | 도봉구 | 104.354046 | 2687.0 | 754.999051 | 473.919742 | 469.645005 | 732.991936 | 5222.909781 |
11 | 노원구 | 269.471208 | 5597.0 | 1136.300730 | 726.019353 | 661.105398 | 1252.720804 | 9642.617494 |
12 | 은평구 | 99.070297 | 6436.0 | 1951.047908 | 860.441894 | 633.920691 | 997.155109 | 10977.635898 |
13 | 서대문구 | 499.974765 | 10674.0 | 1502.393796 | 564.528792 | 385.756000 | 620.083484 | 14246.736837 |
14 | 마포구 | 243.052462 | 11892.0 | 3100.384593 | 981.330424 | 448.964614 | 617.496632 | 17283.228726 |
15 | 양천구 | 50.856086 | 2948.0 | 1109.504601 | 564.758182 | 458.304146 | 766.849255 | 5898.272270 |
16 | 강서구 | 134.075135 | 12654.0 | 3516.810929 | 1102.907125 | 755.834930 | 1150.768428 | 19314.396547 |
17 | 구로구 | 73.972488 | 5870.0 | 1663.170572 | 637.474813 | 464.474908 | 741.589413 | 9450.682193 |
18 | 금천구 | 56.800304 | 5181.0 | 1167.804288 | 433.088322 | 400.265629 | 510.294469 | 7749.253012 |
19 | 영등포구 | 76.614363 | 9780.0 | 2612.622616 | 747.811403 | 448.797837 | 672.505265 | 14338.351485 |
20 | 동작구 | 416.095247 | 12301.0 | 2212.853335 | 664.542833 | 424.948677 | 706.590836 | 16726.030927 |
21 | 관악구 | 365.239161 | 27375.0 | 4595.174082 | 1063.910824 | 660.438289 | 939.787876 | 34999.550232 |
22 | 서초구 | 258.903709 | 5673.0 | 2231.320937 | 804.700123 | 407.437055 | 503.827341 | 9879.189166 |
23 | 강남구 | 166.438099 | 9075.0 | 4086.771843 | 1331.379566 | 557.036334 | 745.317522 | 15961.943364 |
24 | 송파구 | 105.014515 | 9155.0 | 3692.072099 | 1230.218575 | 681.452234 | 901.213357 | 15764.970781 |
25 | 강동구 | 63.404990 | 5362.0 | 1721.832369 | 727.625083 | 519.844986 | 760.610379 | 9155.317807 |
In [234]:
female_df = female_df.drop([0,])
In [235]:
# 관악구를 1로 두고 나머지를 계산한다.
female_df['합계'].rank(ascending = False)
Out[235]:
1 23.0 2 25.0 3 19.0 4 16.0 5 6.0 6 9.0 7 18.0 8 5.0 9 20.0 10 24.0 11 14.0 12 12.0 13 11.0 14 3.0 15 22.0 16 2.0 17 15.0 18 21.0 19 10.0 20 4.0 21 1.0 22 13.0 23 7.0 24 8.0 25 17.0 Name: 합계, dtype: float64
In [236]:
std_value = female_df.iloc[20, 7]
In [237]:
std_value
Out[237]:
34999.55023242577
In [238]:
female_df['여성가구지수'] = female_df.합계 / std_value
In [239]:
female_df
Out[239]:
자치구 | 20세미만 | 여자_30세이하 | 여자_40세이하 | 여자_50세이하 | 여자_60세이하 | 여자_60세초과 | 합계 | 여성가구지수 | |
---|---|---|---|---|---|---|---|---|---|
1 | 종로구 | 174.363723 | 4004.0 | 795.555355 | 344.543781 | 224.315530 | 304.944123 | 5847.722512 | 0.167080 |
2 | 중구 | 194.838251 | 3095.0 | 774.915093 | 293.619201 | 208.805237 | 284.173228 | 4851.351010 | 0.138612 |
3 | 용산구 | 272.113082 | 5143.0 | 1583.506404 | 578.062802 | 312.373968 | 432.156342 | 8321.212598 | 0.237752 |
4 | 성동구 | 286.643392 | 6113.0 | 1391.950289 | 563.840622 | 357.237074 | 511.283559 | 9223.954938 | 0.263545 |
5 | 광진구 | 225.219808 | 11594.0 | 2500.006451 | 747.352623 | 501.999810 | 580.063372 | 16148.642064 | 0.461396 |
6 | 동대문구 | 619.519590 | 11038.0 | 1499.496917 | 582.191822 | 423.280903 | 722.264112 | 14884.753344 | 0.425284 |
7 | 중랑구 | 81.898112 | 5082.0 | 1607.767764 | 702.392183 | 659.937957 | 903.267622 | 9037.263637 | 0.258211 |
8 | 성북구 | 852.665022 | 12046.0 | 1507.463334 | 663.395883 | 490.992505 | 832.737881 | 16393.254625 | 0.468385 |
9 | 강북구 | 147.944977 | 4812.0 | 991.456788 | 555.123802 | 540.025045 | 859.367233 | 7905.917845 | 0.225886 |
10 | 도봉구 | 104.354046 | 2687.0 | 754.999051 | 473.919742 | 469.645005 | 732.991936 | 5222.909781 | 0.149228 |
11 | 노원구 | 269.471208 | 5597.0 | 1136.300730 | 726.019353 | 661.105398 | 1252.720804 | 9642.617494 | 0.275507 |
12 | 은평구 | 99.070297 | 6436.0 | 1951.047908 | 860.441894 | 633.920691 | 997.155109 | 10977.635898 | 0.313651 |
13 | 서대문구 | 499.974765 | 10674.0 | 1502.393796 | 564.528792 | 385.756000 | 620.083484 | 14246.736837 | 0.407055 |
14 | 마포구 | 243.052462 | 11892.0 | 3100.384593 | 981.330424 | 448.964614 | 617.496632 | 17283.228726 | 0.493813 |
15 | 양천구 | 50.856086 | 2948.0 | 1109.504601 | 564.758182 | 458.304146 | 766.849255 | 5898.272270 | 0.168524 |
16 | 강서구 | 134.075135 | 12654.0 | 3516.810929 | 1102.907125 | 755.834930 | 1150.768428 | 19314.396547 | 0.551847 |
17 | 구로구 | 73.972488 | 5870.0 | 1663.170572 | 637.474813 | 464.474908 | 741.589413 | 9450.682193 | 0.270023 |
18 | 금천구 | 56.800304 | 5181.0 | 1167.804288 | 433.088322 | 400.265629 | 510.294469 | 7749.253012 | 0.221410 |
19 | 영등포구 | 76.614363 | 9780.0 | 2612.622616 | 747.811403 | 448.797837 | 672.505265 | 14338.351485 | 0.409672 |
20 | 동작구 | 416.095247 | 12301.0 | 2212.853335 | 664.542833 | 424.948677 | 706.590836 | 16726.030927 | 0.477893 |
21 | 관악구 | 365.239161 | 27375.0 | 4595.174082 | 1063.910824 | 660.438289 | 939.787876 | 34999.550232 | 1.000000 |
22 | 서초구 | 258.903709 | 5673.0 | 2231.320937 | 804.700123 | 407.437055 | 503.827341 | 9879.189166 | 0.282266 |
23 | 강남구 | 166.438099 | 9075.0 | 4086.771843 | 1331.379566 | 557.036334 | 745.317522 | 15961.943364 | 0.456061 |
24 | 송파구 | 105.014515 | 9155.0 | 3692.072099 | 1230.218575 | 681.452234 | 901.213357 | 15764.970781 | 0.450434 |
25 | 강동구 | 63.404990 | 5362.0 | 1721.832369 | 727.625083 | 519.844986 | 760.610379 | 9155.317807 | 0.261584 |
In [240]:
female_df.to_csv('여성지수.csv',encoding = 'CP949')
택배 물동량 확인¶
In [241]:
pakage_df
Out[241]:
Unnamed: 0 | 자치구 | 합계 | 대분류_착지물동량_가구/인테리어(E_C_01) | 대분류_착지물동량_기타(E_C_02) | 대분류_착지물동량_도서/음반(E_C_03) | 대분류_착지물동량_디지털/가전(E_C_04) | 대분류_착지물동량_생활/건강(E_C_05) | 대분류_착지물동량_스포츠/레저(E_C_06) | 대분류_착지물동량_식품(E_C_07) | 대분류_착지물동량_출산/육아(E_C_08) | 대분류_착지물동량_패션의류(E_C_09) | 대분류_착지물동량_패션잡화(E_C_10) | 대분류_착지물동량_화장품/미용(E_C_11) | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 0 | 강남구 | 1263894 | 25035 | 281991 | 27333 | 51770 | 198635 | 13054 | 173813 | 14363 | 308202 | 56279 | 113419 |
1 | 1 | 서초구 | 1063591 | 19508 | 259466 | 48374 | 38415 | 165677 | 17343 | 175048 | 12809 | 192657 | 49330 | 84964 |
2 | 2 | 서대문구 | 1462383 | 16904 | 384154 | 29689 | 46772 | 76597 | 17717 | 466881 | 14987 | 319933 | 50778 | 37971 |
3 | 3 | 강서구 | 998425 | 46705 | 216690 | 49027 | 30791 | 292619 | 12504 | 161749 | 8194 | 81789 | 37966 | 60391 |
4 | 4 | 성동구 | 1318286 | 35119 | 240743 | 94856 | 88985 | 158192 | 16432 | 262624 | 11800 | 181675 | 54699 | 173161 |
5 | 5 | 성북구 | 954037 | 34412 | 248623 | 45362 | 32157 | 129171 | 11961 | 129382 | 10986 | 157248 | 40588 | 114147 |
6 | 6 | 강북구 | 1129221 | 24601 | 274533 | 32974 | 49035 | 114169 | 22840 | 286835 | 11935 | 174292 | 53061 | 84946 |
7 | 7 | 구로구 | 1246786 | 50966 | 280295 | 100624 | 41293 | 100387 | 7275 | 312770 | 4139 | 189141 | 43962 | 115934 |
8 | 8 | 마포구 | 877787 | 22408 | 158557 | 42586 | 46297 | 156728 | 10300 | 138826 | 14946 | 114697 | 68521 | 103921 |
9 | 9 | 중구 | 1368152 | 21845 | 575340 | 59529 | 53182 | 98248 | 9099 | 274131 | 13887 | 149514 | 53259 | 60118 |
10 | 10 | 관악구 | 1346302 | 27617 | 403293 | 92849 | 48138 | 149614 | 14248 | 216126 | 9590 | 240708 | 71545 | 72574 |
11 | 11 | 금천구 | 1014422 | 21538 | 166164 | 60468 | 42454 | 122456 | 12860 | 274197 | 16453 | 136463 | 105229 | 56140 |
12 | 12 | 중랑구 | 1056042 | 29698 | 250412 | 66154 | 32538 | 122674 | 13894 | 200381 | 11334 | 169737 | 64916 | 94304 |
13 | 13 | 양천구 | 1344295 | 28260 | 314270 | 30782 | 77412 | 177142 | 18006 | 280956 | 21391 | 289280 | 50557 | 56239 |
14 | 14 | 동작구 | 1363882 | 12945 | 484868 | 36308 | 52599 | 262019 | 15412 | 200511 | 5765 | 168042 | 28373 | 97040 |
15 | 15 | 영등포구 | 1199353 | 24935 | 210682 | 132970 | 54951 | 230299 | 18028 | 207414 | 10079 | 163554 | 70579 | 75862 |
16 | 16 | 광진구 | 977798 | 34555 | 202879 | 80819 | 62332 | 165524 | 11540 | 150618 | 10665 | 121617 | 85672 | 51577 |
17 | 17 | 은평구 | 1267147 | 25798 | 265316 | 50807 | 69997 | 121469 | 18014 | 252699 | 17116 | 225627 | 64619 | 155685 |
18 | 18 | 동대문구 | 1175063 | 40587 | 329217 | 42277 | 60615 | 150479 | 16835 | 256065 | 7271 | 119752 | 60991 | 90974 |
19 | 19 | 종로구 | 1300884 | 28037 | 217101 | 58980 | 100942 | 136876 | 9183 | 269503 | 6523 | 211620 | 100038 | 162081 |
20 | 20 | 송파구 | 1249014 | 15945 | 260860 | 72158 | 66037 | 156949 | 33264 | 328741 | 23651 | 177532 | 37588 | 76289 |
21 | 21 | 도봉구 | 991098 | 20552 | 143620 | 54883 | 26743 | 93015 | 16178 | 370977 | 13807 | 120724 | 36450 | 94149 |
22 | 22 | 강동구 | 1110743 | 14712 | 320868 | 55966 | 39598 | 89612 | 16200 | 242071 | 7919 | 191783 | 62760 | 69254 |
23 | 23 | 용산구 | 1084532 | 26945 | 236377 | 41941 | 62431 | 107078 | 24825 | 208159 | 13544 | 213099 | 61580 | 88553 |
24 | 24 | 노원구 | 1384308 | 17674 | 296127 | 51875 | 47013 | 174340 | 29941 | 442943 | 14245 | 154134 | 60318 | 95698 |
In [242]:
pakage_df.합계.rank(ascending = False)
Out[242]:
0 10.0 1 18.0 2 1.0 3 21.0 4 7.0 5 24.0 6 15.0 7 12.0 8 25.0 9 3.0 10 5.0 11 20.0 12 19.0 13 6.0 14 4.0 15 13.0 16 23.0 17 9.0 18 14.0 19 8.0 20 11.0 21 22.0 22 16.0 23 17.0 24 2.0 Name: 합계, dtype: float64
In [243]:
std_value2 = pakage_df.iloc[2, 2]
std_value2
Out[243]:
1462383
In [244]:
pakage_df['택배지수'] = pakage_df.합계 / std_value2
In [245]:
pakage_df
Out[245]:
Unnamed: 0 | 자치구 | 합계 | 대분류_착지물동량_가구/인테리어(E_C_01) | 대분류_착지물동량_기타(E_C_02) | 대분류_착지물동량_도서/음반(E_C_03) | 대분류_착지물동량_디지털/가전(E_C_04) | 대분류_착지물동량_생활/건강(E_C_05) | 대분류_착지물동량_스포츠/레저(E_C_06) | 대분류_착지물동량_식품(E_C_07) | 대분류_착지물동량_출산/육아(E_C_08) | 대분류_착지물동량_패션의류(E_C_09) | 대분류_착지물동량_패션잡화(E_C_10) | 대분류_착지물동량_화장품/미용(E_C_11) | 택배지수 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 0 | 강남구 | 1263894 | 25035 | 281991 | 27333 | 51770 | 198635 | 13054 | 173813 | 14363 | 308202 | 56279 | 113419 | 0.864270 |
1 | 1 | 서초구 | 1063591 | 19508 | 259466 | 48374 | 38415 | 165677 | 17343 | 175048 | 12809 | 192657 | 49330 | 84964 | 0.727300 |
2 | 2 | 서대문구 | 1462383 | 16904 | 384154 | 29689 | 46772 | 76597 | 17717 | 466881 | 14987 | 319933 | 50778 | 37971 | 1.000000 |
3 | 3 | 강서구 | 998425 | 46705 | 216690 | 49027 | 30791 | 292619 | 12504 | 161749 | 8194 | 81789 | 37966 | 60391 | 0.682738 |
4 | 4 | 성동구 | 1318286 | 35119 | 240743 | 94856 | 88985 | 158192 | 16432 | 262624 | 11800 | 181675 | 54699 | 173161 | 0.901464 |
5 | 5 | 성북구 | 954037 | 34412 | 248623 | 45362 | 32157 | 129171 | 11961 | 129382 | 10986 | 157248 | 40588 | 114147 | 0.652385 |
6 | 6 | 강북구 | 1129221 | 24601 | 274533 | 32974 | 49035 | 114169 | 22840 | 286835 | 11935 | 174292 | 53061 | 84946 | 0.772179 |
7 | 7 | 구로구 | 1246786 | 50966 | 280295 | 100624 | 41293 | 100387 | 7275 | 312770 | 4139 | 189141 | 43962 | 115934 | 0.852571 |
8 | 8 | 마포구 | 877787 | 22408 | 158557 | 42586 | 46297 | 156728 | 10300 | 138826 | 14946 | 114697 | 68521 | 103921 | 0.600244 |
9 | 9 | 중구 | 1368152 | 21845 | 575340 | 59529 | 53182 | 98248 | 9099 | 274131 | 13887 | 149514 | 53259 | 60118 | 0.935563 |
10 | 10 | 관악구 | 1346302 | 27617 | 403293 | 92849 | 48138 | 149614 | 14248 | 216126 | 9590 | 240708 | 71545 | 72574 | 0.920622 |
11 | 11 | 금천구 | 1014422 | 21538 | 166164 | 60468 | 42454 | 122456 | 12860 | 274197 | 16453 | 136463 | 105229 | 56140 | 0.693677 |
12 | 12 | 중랑구 | 1056042 | 29698 | 250412 | 66154 | 32538 | 122674 | 13894 | 200381 | 11334 | 169737 | 64916 | 94304 | 0.722138 |
13 | 13 | 양천구 | 1344295 | 28260 | 314270 | 30782 | 77412 | 177142 | 18006 | 280956 | 21391 | 289280 | 50557 | 56239 | 0.919250 |
14 | 14 | 동작구 | 1363882 | 12945 | 484868 | 36308 | 52599 | 262019 | 15412 | 200511 | 5765 | 168042 | 28373 | 97040 | 0.932644 |
15 | 15 | 영등포구 | 1199353 | 24935 | 210682 | 132970 | 54951 | 230299 | 18028 | 207414 | 10079 | 163554 | 70579 | 75862 | 0.820136 |
16 | 16 | 광진구 | 977798 | 34555 | 202879 | 80819 | 62332 | 165524 | 11540 | 150618 | 10665 | 121617 | 85672 | 51577 | 0.668633 |
17 | 17 | 은평구 | 1267147 | 25798 | 265316 | 50807 | 69997 | 121469 | 18014 | 252699 | 17116 | 225627 | 64619 | 155685 | 0.866495 |
18 | 18 | 동대문구 | 1175063 | 40587 | 329217 | 42277 | 60615 | 150479 | 16835 | 256065 | 7271 | 119752 | 60991 | 90974 | 0.803526 |
19 | 19 | 종로구 | 1300884 | 28037 | 217101 | 58980 | 100942 | 136876 | 9183 | 269503 | 6523 | 211620 | 100038 | 162081 | 0.889564 |
20 | 20 | 송파구 | 1249014 | 15945 | 260860 | 72158 | 66037 | 156949 | 33264 | 328741 | 23651 | 177532 | 37588 | 76289 | 0.854095 |
21 | 21 | 도봉구 | 991098 | 20552 | 143620 | 54883 | 26743 | 93015 | 16178 | 370977 | 13807 | 120724 | 36450 | 94149 | 0.677728 |
22 | 22 | 강동구 | 1110743 | 14712 | 320868 | 55966 | 39598 | 89612 | 16200 | 242071 | 7919 | 191783 | 62760 | 69254 | 0.759543 |
23 | 23 | 용산구 | 1084532 | 26945 | 236377 | 41941 | 62431 | 107078 | 24825 | 208159 | 13544 | 213099 | 61580 | 88553 | 0.741620 |
24 | 24 | 노원구 | 1384308 | 17674 | 296127 | 51875 | 47013 | 174340 | 29941 | 442943 | 14245 | 154134 | 60318 | 95698 | 0.946611 |
각 지수 합계로 택배함 설치 위치 선정¶
In [246]:
crime_index.head()
Out[246]:
Unnamed: 0 | 자치구 | 살인_안전지수 | 강도_안전지수 | 강간강제추행_안전지수 | 절도_안전지수 | 폭행_안전지수 | 범죄안전지수_합계 | 가로등_지수 | 치안유지기관_지수 | cctv_지수 | 치안지수_합계 | 치안도 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 0 | 종로구 | 0.24 | 0.18 | 0.48 | 0.72 | 0.60 | 2.22 | 0.76 | 0.72 | 0.28 | 1.76 | 3.98 |
1 | 1 | 중구 | 0.90 | 0.50 | 0.56 | 0.36 | 0.80 | 3.12 | 0.12 | 0.12 | 0.04 | 0.28 | 3.40 |
2 | 2 | 용산구 | 0.54 | 0.32 | 0.36 | 0.76 | 0.72 | 2.70 | 0.60 | 0.32 | 0.40 | 1.32 | 4.02 |
3 | 3 | 성동구 | 0.54 | 0.80 | 0.92 | 0.84 | 1.00 | 4.10 | 0.28 | 0.24 | 0.44 | 0.96 | 5.06 |
4 | 4 | 광진구 | 0.90 | 0.64 | 0.32 | 0.32 | 0.64 | 2.82 | 0.08 | 0.20 | 0.32 | 0.60 | 3.42 |
In [247]:
result_df = pd.DataFrame(pd.concat([crime_index.자치구, crime_index.치안도], axis = 1))
result_df
Out[247]:
자치구 | 치안도 | |
---|---|---|
0 | 종로구 | 3.98 |
1 | 중구 | 3.40 |
2 | 용산구 | 4.02 |
3 | 성동구 | 5.06 |
4 | 광진구 | 3.42 |
5 | 동대문구 | 3.24 |
6 | 중랑구 | 3.62 |
7 | 성북구 | 6.18 |
8 | 강북구 | 4.32 |
9 | 도봉구 | 5.26 |
10 | 노원구 | 5.22 |
11 | 은평구 | 5.46 |
12 | 서대문구 | 4.90 |
13 | 마포구 | 3.80 |
14 | 양천구 | 4.62 |
15 | 강서구 | 3.68 |
16 | 구로구 | 3.54 |
17 | 금천구 | 3.68 |
18 | 영등포구 | 3.28 |
19 | 동작구 | 4.44 |
20 | 관악구 | 3.40 |
21 | 서초구 | 4.42 |
22 | 강남구 | 3.52 |
23 | 송파구 | 3.40 |
24 | 강동구 | 4.14 |
In [248]:
pakage_df.head()
Out[248]:
Unnamed: 0 | 자치구 | 합계 | 대분류_착지물동량_가구/인테리어(E_C_01) | 대분류_착지물동량_기타(E_C_02) | 대분류_착지물동량_도서/음반(E_C_03) | 대분류_착지물동량_디지털/가전(E_C_04) | 대분류_착지물동량_생활/건강(E_C_05) | 대분류_착지물동량_스포츠/레저(E_C_06) | 대분류_착지물동량_식품(E_C_07) | 대분류_착지물동량_출산/육아(E_C_08) | 대분류_착지물동량_패션의류(E_C_09) | 대분류_착지물동량_패션잡화(E_C_10) | 대분류_착지물동량_화장품/미용(E_C_11) | 택배지수 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 0 | 강남구 | 1263894 | 25035 | 281991 | 27333 | 51770 | 198635 | 13054 | 173813 | 14363 | 308202 | 56279 | 113419 | 0.864270 |
1 | 1 | 서초구 | 1063591 | 19508 | 259466 | 48374 | 38415 | 165677 | 17343 | 175048 | 12809 | 192657 | 49330 | 84964 | 0.727300 |
2 | 2 | 서대문구 | 1462383 | 16904 | 384154 | 29689 | 46772 | 76597 | 17717 | 466881 | 14987 | 319933 | 50778 | 37971 | 1.000000 |
3 | 3 | 강서구 | 998425 | 46705 | 216690 | 49027 | 30791 | 292619 | 12504 | 161749 | 8194 | 81789 | 37966 | 60391 | 0.682738 |
4 | 4 | 성동구 | 1318286 | 35119 | 240743 | 94856 | 88985 | 158192 | 16432 | 262624 | 11800 | 181675 | 54699 | 173161 | 0.901464 |
In [249]:
temp_pakage = pd.DataFrame(pd.concat([pakage_df.자치구, pakage_df.택배지수], axis = 1))
temp_pakage
Out[249]:
자치구 | 택배지수 | |
---|---|---|
0 | 강남구 | 0.864270 |
1 | 서초구 | 0.727300 |
2 | 서대문구 | 1.000000 |
3 | 강서구 | 0.682738 |
4 | 성동구 | 0.901464 |
5 | 성북구 | 0.652385 |
6 | 강북구 | 0.772179 |
7 | 구로구 | 0.852571 |
8 | 마포구 | 0.600244 |
9 | 중구 | 0.935563 |
10 | 관악구 | 0.920622 |
11 | 금천구 | 0.693677 |
12 | 중랑구 | 0.722138 |
13 | 양천구 | 0.919250 |
14 | 동작구 | 0.932644 |
15 | 영등포구 | 0.820136 |
16 | 광진구 | 0.668633 |
17 | 은평구 | 0.866495 |
18 | 동대문구 | 0.803526 |
19 | 종로구 | 0.889564 |
20 | 송파구 | 0.854095 |
21 | 도봉구 | 0.677728 |
22 | 강동구 | 0.759543 |
23 | 용산구 | 0.741620 |
24 | 노원구 | 0.946611 |
In [250]:
temp_female = pd.DataFrame(pd.concat([female_df.자치구, female_df.여성가구지수], axis = 1))
temp_female
Out[250]:
자치구 | 여성가구지수 | |
---|---|---|
1 | 종로구 | 0.167080 |
2 | 중구 | 0.138612 |
3 | 용산구 | 0.237752 |
4 | 성동구 | 0.263545 |
5 | 광진구 | 0.461396 |
6 | 동대문구 | 0.425284 |
7 | 중랑구 | 0.258211 |
8 | 성북구 | 0.468385 |
9 | 강북구 | 0.225886 |
10 | 도봉구 | 0.149228 |
11 | 노원구 | 0.275507 |
12 | 은평구 | 0.313651 |
13 | 서대문구 | 0.407055 |
14 | 마포구 | 0.493813 |
15 | 양천구 | 0.168524 |
16 | 강서구 | 0.551847 |
17 | 구로구 | 0.270023 |
18 | 금천구 | 0.221410 |
19 | 영등포구 | 0.409672 |
20 | 동작구 | 0.477893 |
21 | 관악구 | 1.000000 |
22 | 서초구 | 0.282266 |
23 | 강남구 | 0.456061 |
24 | 송파구 | 0.450434 |
25 | 강동구 | 0.261584 |
In [251]:
result_df = result_df.merge(temp_pakage, on = '자치구', how = 'inner')
In [252]:
result_df = result_df.merge(temp_female, on = '자치구', how = 'inner')
In [253]:
result_df
Out[253]:
자치구 | 치안도 | 택배지수 | 여성가구지수 | |
---|---|---|---|---|
0 | 종로구 | 3.98 | 0.889564 | 0.167080 |
1 | 중구 | 3.40 | 0.935563 | 0.138612 |
2 | 용산구 | 4.02 | 0.741620 | 0.237752 |
3 | 성동구 | 5.06 | 0.901464 | 0.263545 |
4 | 광진구 | 3.42 | 0.668633 | 0.461396 |
5 | 동대문구 | 3.24 | 0.803526 | 0.425284 |
6 | 중랑구 | 3.62 | 0.722138 | 0.258211 |
7 | 성북구 | 6.18 | 0.652385 | 0.468385 |
8 | 강북구 | 4.32 | 0.772179 | 0.225886 |
9 | 도봉구 | 5.26 | 0.677728 | 0.149228 |
10 | 노원구 | 5.22 | 0.946611 | 0.275507 |
11 | 은평구 | 5.46 | 0.866495 | 0.313651 |
12 | 서대문구 | 4.90 | 1.000000 | 0.407055 |
13 | 마포구 | 3.80 | 0.600244 | 0.493813 |
14 | 양천구 | 4.62 | 0.919250 | 0.168524 |
15 | 강서구 | 3.68 | 0.682738 | 0.551847 |
16 | 구로구 | 3.54 | 0.852571 | 0.270023 |
17 | 금천구 | 3.68 | 0.693677 | 0.221410 |
18 | 영등포구 | 3.28 | 0.820136 | 0.409672 |
19 | 동작구 | 4.44 | 0.932644 | 0.477893 |
20 | 관악구 | 3.40 | 0.920622 | 1.000000 |
21 | 서초구 | 4.42 | 0.727300 | 0.282266 |
22 | 강남구 | 3.52 | 0.864270 | 0.456061 |
23 | 송파구 | 3.40 | 0.854095 | 0.450434 |
24 | 강동구 | 4.14 | 0.759543 | 0.261584 |
In [254]:
result_df['final_index'] = result_df.치안도 + (1 - result_df.택배지수) + (1 - result_df.여성가구지수)
In [258]:
f_p = pd.read_csv('pre_new_서울시_지역별_안심택배함_설치개수.csv')
In [270]:
result_df = result_df.merge(f_p, on = '자치구', how = 'inner')
In [271]:
result_df
Out[271]:
자치구 | 치안도 | 택배지수 | 여성가구지수 | final_index | 총계 | |
---|---|---|---|---|---|---|
0 | 종로구 | 3.98 | 0.889564 | 0.167080 | 4.923356 | 5 |
1 | 중구 | 3.40 | 0.935563 | 0.138612 | 4.325825 | 8 |
2 | 용산구 | 4.02 | 0.741620 | 0.237752 | 5.040628 | 9 |
3 | 성동구 | 5.06 | 0.901464 | 0.263545 | 5.894991 | 10 |
4 | 광진구 | 3.42 | 0.668633 | 0.461396 | 4.289971 | 13 |
5 | 동대문구 | 3.24 | 0.803526 | 0.425284 | 4.011190 | 12 |
6 | 중랑구 | 3.62 | 0.722138 | 0.258211 | 4.639651 | 5 |
7 | 성북구 | 6.18 | 0.652385 | 0.468385 | 7.059230 | 8 |
8 | 강북구 | 4.32 | 0.772179 | 0.225886 | 5.321935 | 9 |
9 | 도봉구 | 5.26 | 0.677728 | 0.149228 | 6.433044 | 11 |
10 | 노원구 | 5.22 | 0.946611 | 0.275507 | 5.997882 | 9 |
11 | 은평구 | 5.46 | 0.866495 | 0.313651 | 6.279855 | 12 |
12 | 서대문구 | 4.90 | 1.000000 | 0.407055 | 5.492945 | 13 |
13 | 마포구 | 3.80 | 0.600244 | 0.493813 | 4.705943 | 14 |
14 | 양천구 | 4.62 | 0.919250 | 0.168524 | 5.532226 | 11 |
15 | 강서구 | 3.68 | 0.682738 | 0.551847 | 4.445415 | 14 |
16 | 구로구 | 3.54 | 0.852571 | 0.270023 | 4.417406 | 12 |
17 | 금천구 | 3.68 | 0.693677 | 0.221410 | 4.764913 | 9 |
18 | 영등포구 | 3.28 | 0.820136 | 0.409672 | 4.050192 | 12 |
19 | 동작구 | 4.44 | 0.932644 | 0.477893 | 5.029464 | 14 |
20 | 관악구 | 3.40 | 0.920622 | 1.000000 | 3.479378 | 16 |
21 | 서초구 | 4.42 | 0.727300 | 0.282266 | 5.410434 | 7 |
22 | 강남구 | 3.52 | 0.864270 | 0.456061 | 4.199668 | 9 |
23 | 송파구 | 3.40 | 0.854095 | 0.450434 | 4.095471 | 11 |
24 | 강동구 | 4.14 | 0.759543 | 0.261584 | 5.118873 | 10 |
In [274]:
result_df.rename({'총계' : '여성안심택배함_총계'}, axis = 'columns', inplace = True)
In [275]:
# final_index = 낮을 수록 택배함 설치가 시급한 지역
# 관악구 지역의 택배함 설치가 시급함.
result_df
Out[275]:
자치구 | 치안도 | 택배지수 | 여성가구지수 | final_index | 여성안심택배함_총계 | |
---|---|---|---|---|---|---|
0 | 종로구 | 3.98 | 0.889564 | 0.167080 | 4.923356 | 5 |
1 | 중구 | 3.40 | 0.935563 | 0.138612 | 4.325825 | 8 |
2 | 용산구 | 4.02 | 0.741620 | 0.237752 | 5.040628 | 9 |
3 | 성동구 | 5.06 | 0.901464 | 0.263545 | 5.894991 | 10 |
4 | 광진구 | 3.42 | 0.668633 | 0.461396 | 4.289971 | 13 |
5 | 동대문구 | 3.24 | 0.803526 | 0.425284 | 4.011190 | 12 |
6 | 중랑구 | 3.62 | 0.722138 | 0.258211 | 4.639651 | 5 |
7 | 성북구 | 6.18 | 0.652385 | 0.468385 | 7.059230 | 8 |
8 | 강북구 | 4.32 | 0.772179 | 0.225886 | 5.321935 | 9 |
9 | 도봉구 | 5.26 | 0.677728 | 0.149228 | 6.433044 | 11 |
10 | 노원구 | 5.22 | 0.946611 | 0.275507 | 5.997882 | 9 |
11 | 은평구 | 5.46 | 0.866495 | 0.313651 | 6.279855 | 12 |
12 | 서대문구 | 4.90 | 1.000000 | 0.407055 | 5.492945 | 13 |
13 | 마포구 | 3.80 | 0.600244 | 0.493813 | 4.705943 | 14 |
14 | 양천구 | 4.62 | 0.919250 | 0.168524 | 5.532226 | 11 |
15 | 강서구 | 3.68 | 0.682738 | 0.551847 | 4.445415 | 14 |
16 | 구로구 | 3.54 | 0.852571 | 0.270023 | 4.417406 | 12 |
17 | 금천구 | 3.68 | 0.693677 | 0.221410 | 4.764913 | 9 |
18 | 영등포구 | 3.28 | 0.820136 | 0.409672 | 4.050192 | 12 |
19 | 동작구 | 4.44 | 0.932644 | 0.477893 | 5.029464 | 14 |
20 | 관악구 | 3.40 | 0.920622 | 1.000000 | 3.479378 | 16 |
21 | 서초구 | 4.42 | 0.727300 | 0.282266 | 5.410434 | 7 |
22 | 강남구 | 3.52 | 0.864270 | 0.456061 | 4.199668 | 9 |
23 | 송파구 | 3.40 | 0.854095 | 0.450434 | 4.095471 | 11 |
24 | 강동구 | 4.14 | 0.759543 | 0.261584 | 5.118873 | 10 |
In [281]:
result_df.to_csv('택배함설치분석결과.csv',encoding = 'CP949', index = False)
3. 여성안심지킴이집 위치 선정¶
- 여성안심지킴이집 위치 선정에는 아래 데이터를 고려합니다.
- 자치구별 치안도
- 자치구별 여성 1인가구수
- 경찰청 성범죄 피해 현황_여성
- 택배함 위치선정 건의 자료를 사용한다.
In [382]:
safe_home_df = pd.read_csv('택배함설치분석결과.csv', encoding = 'CP949')
In [383]:
safe_home_df.drop(['택배지수', 'final_index', '여성안심택배함_총계'], axis = 1, inplace = True)
In [384]:
safe_home_df['final_index'] = safe_home_df.치안도 + (1 - safe_home_df.여성가구지수)
In [385]:
safe_home_df
Out[385]:
자치구 | 치안도 | 여성가구지수 | final_index | |
---|---|---|---|---|
0 | 종로구 | 3.98 | 0.167080 | 4.812920 |
1 | 중구 | 3.40 | 0.138612 | 4.261388 |
2 | 용산구 | 4.02 | 0.237752 | 4.782248 |
3 | 성동구 | 5.06 | 0.263545 | 5.796455 |
4 | 광진구 | 3.42 | 0.461396 | 3.958604 |
5 | 동대문구 | 3.24 | 0.425284 | 3.814716 |
6 | 중랑구 | 3.62 | 0.258211 | 4.361789 |
7 | 성북구 | 6.18 | 0.468385 | 6.711615 |
8 | 강북구 | 4.32 | 0.225886 | 5.094114 |
9 | 도봉구 | 5.26 | 0.149228 | 6.110772 |
10 | 노원구 | 5.22 | 0.275507 | 5.944493 |
11 | 은평구 | 5.46 | 0.313651 | 6.146349 |
12 | 서대문구 | 4.90 | 0.407055 | 5.492945 |
13 | 마포구 | 3.80 | 0.493813 | 4.306187 |
14 | 양천구 | 4.62 | 0.168524 | 5.451476 |
15 | 강서구 | 3.68 | 0.551847 | 4.128153 |
16 | 구로구 | 3.54 | 0.270023 | 4.269977 |
17 | 금천구 | 3.68 | 0.221410 | 4.458590 |
18 | 영등포구 | 3.28 | 0.409672 | 3.870328 |
19 | 동작구 | 4.44 | 0.477893 | 4.962107 |
20 | 관악구 | 3.40 | 1.000000 | 3.400000 |
21 | 서초구 | 4.42 | 0.282266 | 5.137734 |
22 | 강남구 | 3.52 | 0.456061 | 4.063939 |
23 | 송파구 | 3.40 | 0.450434 | 3.949566 |
24 | 강동구 | 4.14 | 0.261584 | 4.878416 |
In [386]:
# 각 자치구별 여성안심지킴이집 수 계산
count_home = pd.read_csv('서울시 여성안심지킴이집 정보.csv', encoding = 'CP949')
In [387]:
count_home
Out[387]:
번호 | 브랜드명 | 자치구 | 점포명 | 주소 | |
---|---|---|---|---|---|
0 | 1 | CU | 종로구 | 광화문광장점 | 서울특별시 종로구 신문로1가 1-1번지 |
1 | 2 | CU | 종로구 | 내자중앙점 | 서울특별시 종로구 내자동 61-1번지 |
2 | 3 | CU | 종로구 | 대학로광장점 | 서울특별시 종로구 혜화동 93번지 |
3 | 4 | CU | 종로구 | 동대문역점 | 서울특별시 종로구 창신동 464-16번지 |
4 | 5 | CU | 종로구 | 동숭아트점 | 서울특별시 종로구 동숭동 28번지 |
... | ... | ... | ... | ... | ... |
1014 | 1015 | 세븐일레븐 | 강동구 | 세븐일레븐 성내삼성점 | 서울특별시 강동구 성내로9길 351층 (성내동) |
1015 | 1016 | 세븐일레븐 | 강동구 | 세븐일레븐 강동고덕점 | 서울특별시 강동구 동남로75길 13-25 |
1016 | 1017 | 세븐일레븐 | 강동구 | 세븐일레븐 길동4호점 | 서울특별시 강동구 명일로210 (길동) |
1017 | 1018 | 씨스페이스 | 강동구 | 강동상일점 | 서울시 강동구 상일동 437-8 1층 |
1018 | 1019 | GS25 | 강동구 | 천호중앙점 | 상암로162 |
1019 rows × 5 columns
In [388]:
count_home.자치구.unique()
Out[388]:
array(['종로구', '중구', '용산구', '성동구', '광진구', 'GS25', '동대문구', '중랑구', '성북구', '강북구', '도봉구', '노원구', '은평구', '서대문구', '마포구', '양천구', '구로구', '강서구', '금천구', '영등포구', '송파구', '동작구', '관악구', '서초구', '강남구', '강동구'], dtype=object)
In [389]:
count_home.자치구 = count_home.자치구.replace('GS25', '광진구')
In [390]:
temp_df = count_home.groupby('자치구').count()
temp_df
Out[390]:
번호 | 브랜드명 | 점포명 | 주소 | |
---|---|---|---|---|
자치구 | ||||
강남구 | 146 | 146 | 146 | 146 |
강동구 | 47 | 47 | 47 | 47 |
강북구 | 37 | 37 | 37 | 37 |
강서구 | 36 | 36 | 36 | 36 |
관악구 | 42 | 42 | 42 | 42 |
광진구 | 32 | 32 | 32 | 32 |
구로구 | 35 | 35 | 35 | 35 |
금천구 | 15 | 15 | 15 | 15 |
노원구 | 35 | 35 | 35 | 35 |
도봉구 | 28 | 28 | 28 | 28 |
동대문구 | 50 | 50 | 50 | 50 |
동작구 | 28 | 28 | 28 | 28 |
마포구 | 47 | 47 | 47 | 47 |
서대문구 | 21 | 21 | 21 | 21 |
서초구 | 61 | 61 | 61 | 61 |
성동구 | 23 | 23 | 23 | 23 |
성북구 | 42 | 42 | 42 | 42 |
송파구 | 63 | 63 | 63 | 63 |
양천구 | 20 | 20 | 20 | 20 |
영등포구 | 39 | 39 | 39 | 39 |
용산구 | 34 | 34 | 34 | 34 |
은평구 | 33 | 33 | 33 | 33 |
종로구 | 35 | 35 | 35 | 35 |
중구 | 37 | 37 | 37 | 37 |
중랑구 | 33 | 33 | 33 | 33 |
In [391]:
temp_df = pd.DataFrame(temp_df['번호'])
In [392]:
temp_df.reset_index()
Out[392]:
자치구 | 번호 | |
---|---|---|
0 | 강남구 | 146 |
1 | 강동구 | 47 |
2 | 강북구 | 37 |
3 | 강서구 | 36 |
4 | 관악구 | 42 |
5 | 광진구 | 32 |
6 | 구로구 | 35 |
7 | 금천구 | 15 |
8 | 노원구 | 35 |
9 | 도봉구 | 28 |
10 | 동대문구 | 50 |
11 | 동작구 | 28 |
12 | 마포구 | 47 |
13 | 서대문구 | 21 |
14 | 서초구 | 61 |
15 | 성동구 | 23 |
16 | 성북구 | 42 |
17 | 송파구 | 63 |
18 | 양천구 | 20 |
19 | 영등포구 | 39 |
20 | 용산구 | 34 |
21 | 은평구 | 33 |
22 | 종로구 | 35 |
23 | 중구 | 37 |
24 | 중랑구 | 33 |
In [393]:
safe_home_df = safe_home_df.merge(temp_df, on = '자치구', how = 'inner')
safe_home_df
Out[393]:
자치구 | 치안도 | 여성가구지수 | final_index | 번호 | |
---|---|---|---|---|---|
0 | 종로구 | 3.98 | 0.167080 | 4.812920 | 35 |
1 | 중구 | 3.40 | 0.138612 | 4.261388 | 37 |
2 | 용산구 | 4.02 | 0.237752 | 4.782248 | 34 |
3 | 성동구 | 5.06 | 0.263545 | 5.796455 | 23 |
4 | 광진구 | 3.42 | 0.461396 | 3.958604 | 32 |
5 | 동대문구 | 3.24 | 0.425284 | 3.814716 | 50 |
6 | 중랑구 | 3.62 | 0.258211 | 4.361789 | 33 |
7 | 성북구 | 6.18 | 0.468385 | 6.711615 | 42 |
8 | 강북구 | 4.32 | 0.225886 | 5.094114 | 37 |
9 | 도봉구 | 5.26 | 0.149228 | 6.110772 | 28 |
10 | 노원구 | 5.22 | 0.275507 | 5.944493 | 35 |
11 | 은평구 | 5.46 | 0.313651 | 6.146349 | 33 |
12 | 서대문구 | 4.90 | 0.407055 | 5.492945 | 21 |
13 | 마포구 | 3.80 | 0.493813 | 4.306187 | 47 |
14 | 양천구 | 4.62 | 0.168524 | 5.451476 | 20 |
15 | 강서구 | 3.68 | 0.551847 | 4.128153 | 36 |
16 | 구로구 | 3.54 | 0.270023 | 4.269977 | 35 |
17 | 금천구 | 3.68 | 0.221410 | 4.458590 | 15 |
18 | 영등포구 | 3.28 | 0.409672 | 3.870328 | 39 |
19 | 동작구 | 4.44 | 0.477893 | 4.962107 | 28 |
20 | 관악구 | 3.40 | 1.000000 | 3.400000 | 42 |
21 | 서초구 | 4.42 | 0.282266 | 5.137734 | 61 |
22 | 강남구 | 3.52 | 0.456061 | 4.063939 | 146 |
23 | 송파구 | 3.40 | 0.450434 | 3.949566 | 63 |
24 | 강동구 | 4.14 | 0.261584 | 4.878416 | 47 |
In [394]:
safe_home_df.rename({'번호' : '여성안심지킴이집_총계'}, axis = 'columns', inplace = True)
In [397]:
# 수치가 낮을수록 설치가 시급한 지역입니다.
safe_home_df
Out[397]:
자치구 | 치안도 | 여성가구지수 | final_index | 여성안심지킴이집_총계 | |
---|---|---|---|---|---|
0 | 종로구 | 3.98 | 0.167080 | 4.812920 | 35 |
1 | 중구 | 3.40 | 0.138612 | 4.261388 | 37 |
2 | 용산구 | 4.02 | 0.237752 | 4.782248 | 34 |
3 | 성동구 | 5.06 | 0.263545 | 5.796455 | 23 |
4 | 광진구 | 3.42 | 0.461396 | 3.958604 | 32 |
5 | 동대문구 | 3.24 | 0.425284 | 3.814716 | 50 |
6 | 중랑구 | 3.62 | 0.258211 | 4.361789 | 33 |
7 | 성북구 | 6.18 | 0.468385 | 6.711615 | 42 |
8 | 강북구 | 4.32 | 0.225886 | 5.094114 | 37 |
9 | 도봉구 | 5.26 | 0.149228 | 6.110772 | 28 |
10 | 노원구 | 5.22 | 0.275507 | 5.944493 | 35 |
11 | 은평구 | 5.46 | 0.313651 | 6.146349 | 33 |
12 | 서대문구 | 4.90 | 0.407055 | 5.492945 | 21 |
13 | 마포구 | 3.80 | 0.493813 | 4.306187 | 47 |
14 | 양천구 | 4.62 | 0.168524 | 5.451476 | 20 |
15 | 강서구 | 3.68 | 0.551847 | 4.128153 | 36 |
16 | 구로구 | 3.54 | 0.270023 | 4.269977 | 35 |
17 | 금천구 | 3.68 | 0.221410 | 4.458590 | 15 |
18 | 영등포구 | 3.28 | 0.409672 | 3.870328 | 39 |
19 | 동작구 | 4.44 | 0.477893 | 4.962107 | 28 |
20 | 관악구 | 3.40 | 1.000000 | 3.400000 | 42 |
21 | 서초구 | 4.42 | 0.282266 | 5.137734 | 61 |
22 | 강남구 | 3.52 | 0.456061 | 4.063939 | 146 |
23 | 송파구 | 3.40 | 0.450434 | 3.949566 | 63 |
24 | 강동구 | 4.14 | 0.261584 | 4.878416 | 47 |
In [400]:
# 관악구의 안심지킴이집 설치가 시급합니다.
safe_home_df.final_index.rank()
Out[400]:
0 14.0 1 8.0 2 13.0 3 21.0 4 5.0 5 2.0 6 11.0 7 25.0 8 17.0 9 23.0 10 22.0 11 24.0 12 20.0 13 10.0 14 19.0 15 7.0 16 9.0 17 12.0 18 3.0 19 16.0 20 1.0 21 18.0 22 6.0 23 4.0 24 15.0 Name: final_index, dtype: float64
In [396]:
# PPT 편의를 위해 csv로 내보냅니다.
safe_home_df.to_csv('여성안심지킴이집_결과.csv',encoding = 'CP949', index = False)
4. 여성안심귀가스카우트 인원 배치 제안¶
- 여성안심귀가스카우트 인원 배치에는 아래 데이터를 고려합니다.
- 자치구별 치안도
- 자치구별 여성 1인가구수
- 경찰청 성범죄 피해 현황_여성
- 여성안심지킴이집의 데이터를 사용합니다.
In [404]:
scout_df = pd.read_csv('여성안심지킴이집_결과.csv', encoding = 'CP949')
In [405]:
scout_df
Out[405]:
자치구 | 치안도 | 여성가구지수 | final_index | 여성안심지킴이집_총계 | |
---|---|---|---|---|---|
0 | 종로구 | 3.98 | 0.167080 | 4.812920 | 35 |
1 | 중구 | 3.40 | 0.138612 | 4.261388 | 37 |
2 | 용산구 | 4.02 | 0.237752 | 4.782248 | 34 |
3 | 성동구 | 5.06 | 0.263545 | 5.796455 | 23 |
4 | 광진구 | 3.42 | 0.461396 | 3.958604 | 32 |
5 | 동대문구 | 3.24 | 0.425284 | 3.814716 | 50 |
6 | 중랑구 | 3.62 | 0.258211 | 4.361789 | 33 |
7 | 성북구 | 6.18 | 0.468385 | 6.711615 | 42 |
8 | 강북구 | 4.32 | 0.225886 | 5.094114 | 37 |
9 | 도봉구 | 5.26 | 0.149228 | 6.110772 | 28 |
10 | 노원구 | 5.22 | 0.275507 | 5.944493 | 35 |
11 | 은평구 | 5.46 | 0.313651 | 6.146349 | 33 |
12 | 서대문구 | 4.90 | 0.407055 | 5.492945 | 21 |
13 | 마포구 | 3.80 | 0.493813 | 4.306187 | 47 |
14 | 양천구 | 4.62 | 0.168524 | 5.451476 | 20 |
15 | 강서구 | 3.68 | 0.551847 | 4.128153 | 36 |
16 | 구로구 | 3.54 | 0.270023 | 4.269977 | 35 |
17 | 금천구 | 3.68 | 0.221410 | 4.458590 | 15 |
18 | 영등포구 | 3.28 | 0.409672 | 3.870328 | 39 |
19 | 동작구 | 4.44 | 0.477893 | 4.962107 | 28 |
20 | 관악구 | 3.40 | 1.000000 | 3.400000 | 42 |
21 | 서초구 | 4.42 | 0.282266 | 5.137734 | 61 |
22 | 강남구 | 3.52 | 0.456061 | 4.063939 | 146 |
23 | 송파구 | 3.40 | 0.450434 | 3.949566 | 63 |
24 | 강동구 | 4.14 | 0.261584 | 4.878416 | 47 |
In [407]:
# 필요없는 '여성안심지킴이집_총계'열은 삭제합니다.
scout_df.drop(['여성안심지킴이집_총계'], axis = 1, inplace = True)
In [408]:
scout_df
Out[408]:
자치구 | 치안도 | 여성가구지수 | final_index | |
---|---|---|---|---|
0 | 종로구 | 3.98 | 0.167080 | 4.812920 |
1 | 중구 | 3.40 | 0.138612 | 4.261388 |
2 | 용산구 | 4.02 | 0.237752 | 4.782248 |
3 | 성동구 | 5.06 | 0.263545 | 5.796455 |
4 | 광진구 | 3.42 | 0.461396 | 3.958604 |
5 | 동대문구 | 3.24 | 0.425284 | 3.814716 |
6 | 중랑구 | 3.62 | 0.258211 | 4.361789 |
7 | 성북구 | 6.18 | 0.468385 | 6.711615 |
8 | 강북구 | 4.32 | 0.225886 | 5.094114 |
9 | 도봉구 | 5.26 | 0.149228 | 6.110772 |
10 | 노원구 | 5.22 | 0.275507 | 5.944493 |
11 | 은평구 | 5.46 | 0.313651 | 6.146349 |
12 | 서대문구 | 4.90 | 0.407055 | 5.492945 |
13 | 마포구 | 3.80 | 0.493813 | 4.306187 |
14 | 양천구 | 4.62 | 0.168524 | 5.451476 |
15 | 강서구 | 3.68 | 0.551847 | 4.128153 |
16 | 구로구 | 3.54 | 0.270023 | 4.269977 |
17 | 금천구 | 3.68 | 0.221410 | 4.458590 |
18 | 영등포구 | 3.28 | 0.409672 | 3.870328 |
19 | 동작구 | 4.44 | 0.477893 | 4.962107 |
20 | 관악구 | 3.40 | 1.000000 | 3.400000 |
21 | 서초구 | 4.42 | 0.282266 | 5.137734 |
22 | 강남구 | 3.52 | 0.456061 | 4.063939 |
23 | 송파구 | 3.40 | 0.450434 | 3.949566 |
24 | 강동구 | 4.14 | 0.261584 | 4.878416 |
In [437]:
# 여성안심귀가스카우트의 이용현황을 붙입니다.
scout_2021 = pd.read_csv('안심귀가스카우트 이용현황(2021).csv', thousands = ',')
In [438]:
scout_2021
Out[438]:
자치구 | 이용실적 | 스카우트 인원 | |
---|---|---|---|
0 | 합계 | 177805 | 500 |
1 | 종로구 | 8586 | 14 |
2 | 중구 | 3570 | 16 |
3 | 용산구 | 2981 | 13 |
4 | 성동구 | 8518 | 19 |
5 | 광진구 | 5733 | 13 |
6 | 동대문구 | 19085 | 17 |
7 | 중랑구 | 6889 | 17 |
8 | 성북구 | 1647 | 27 |
9 | 강북구 | 6867 | 25 |
10 | 도봉구 | 4070 | 16 |
11 | 노원구 | 3414 | 20 |
12 | 은평구 | 590 | 24 |
13 | 서대문구 | 6225 | 15 |
14 | 마포구 | 6588 | 15 |
15 | 양천구 | 4547 | 11 |
16 | 강서구 | 1670 | 21 |
17 | 구로구 | 4842 | 24 |
18 | 금천구 | 9745 | 24 |
19 | 영등포구 | 1681 | 21 |
20 | 동작구 | 16761 | 25 |
21 | 관악구 | 12780 | 29 |
22 | 서초구 | 8265 | 32 |
23 | 강남구 | 7563 | 19 |
24 | 송파구 | 19450 | 22 |
25 | 강동구 | 5738 | 21 |
In [439]:
scout_2021.info()
<class 'pandas.core.frame.DataFrame'> RangeIndex: 26 entries, 0 to 25 Data columns (total 3 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 자치구 26 non-null object 1 이용실적 26 non-null int64 2 스카우트 인원 26 non-null int64 dtypes: int64(2), object(1) memory usage: 752.0+ bytes
In [440]:
# 스카우트 이용실적 비율을 집계합니다.
temp_val = scout_2021.iloc[0, 1]
temp_val
Out[440]:
177805
In [441]:
scout_2021['이용실적_비율(%)'] = (scout_2021['이용실적'] / temp_val) * 100
In [442]:
scout_2021
Out[442]:
자치구 | 이용실적 | 스카우트 인원 | 이용실적_비율(%) | |
---|---|---|---|---|
0 | 합계 | 177805 | 500 | 100.000000 |
1 | 종로구 | 8586 | 14 | 4.828886 |
2 | 중구 | 3570 | 16 | 2.007818 |
3 | 용산구 | 2981 | 13 | 1.676556 |
4 | 성동구 | 8518 | 19 | 4.790641 |
5 | 광진구 | 5733 | 13 | 3.224319 |
6 | 동대문구 | 19085 | 17 | 10.733669 |
7 | 중랑구 | 6889 | 17 | 3.874469 |
8 | 성북구 | 1647 | 27 | 0.926296 |
9 | 강북구 | 6867 | 25 | 3.862096 |
10 | 도봉구 | 4070 | 16 | 2.289024 |
11 | 노원구 | 3414 | 20 | 1.920081 |
12 | 은평구 | 590 | 24 | 0.331824 |
13 | 서대문구 | 6225 | 15 | 3.501026 |
14 | 마포구 | 6588 | 15 | 3.705183 |
15 | 양천구 | 4547 | 11 | 2.557296 |
16 | 강서구 | 1670 | 21 | 0.939231 |
17 | 구로구 | 4842 | 24 | 2.723208 |
18 | 금천구 | 9745 | 24 | 5.480723 |
19 | 영등포구 | 1681 | 21 | 0.945418 |
20 | 동작구 | 16761 | 25 | 9.426619 |
21 | 관악구 | 12780 | 29 | 7.187649 |
22 | 서초구 | 8265 | 32 | 4.648351 |
23 | 강남구 | 7563 | 19 | 4.253536 |
24 | 송파구 | 19450 | 22 | 10.938950 |
25 | 강동구 | 5738 | 21 | 3.227131 |
In [445]:
# scout_df에 merge
scout_df = scout_df.merge(scout_2021, on = '자치구', how = 'inner')
In [446]:
scout_df
Out[446]:
자치구 | 치안도 | 여성가구지수 | final_index | 이용실적 | 스카우트 인원 | 이용실적_비율(%) | |
---|---|---|---|---|---|---|---|
0 | 종로구 | 3.98 | 0.167080 | 4.812920 | 8586 | 14 | 4.828886 |
1 | 중구 | 3.40 | 0.138612 | 4.261388 | 3570 | 16 | 2.007818 |
2 | 용산구 | 4.02 | 0.237752 | 4.782248 | 2981 | 13 | 1.676556 |
3 | 성동구 | 5.06 | 0.263545 | 5.796455 | 8518 | 19 | 4.790641 |
4 | 광진구 | 3.42 | 0.461396 | 3.958604 | 5733 | 13 | 3.224319 |
5 | 동대문구 | 3.24 | 0.425284 | 3.814716 | 19085 | 17 | 10.733669 |
6 | 중랑구 | 3.62 | 0.258211 | 4.361789 | 6889 | 17 | 3.874469 |
7 | 성북구 | 6.18 | 0.468385 | 6.711615 | 1647 | 27 | 0.926296 |
8 | 강북구 | 4.32 | 0.225886 | 5.094114 | 6867 | 25 | 3.862096 |
9 | 도봉구 | 5.26 | 0.149228 | 6.110772 | 4070 | 16 | 2.289024 |
10 | 노원구 | 5.22 | 0.275507 | 5.944493 | 3414 | 20 | 1.920081 |
11 | 은평구 | 5.46 | 0.313651 | 6.146349 | 590 | 24 | 0.331824 |
12 | 서대문구 | 4.90 | 0.407055 | 5.492945 | 6225 | 15 | 3.501026 |
13 | 마포구 | 3.80 | 0.493813 | 4.306187 | 6588 | 15 | 3.705183 |
14 | 양천구 | 4.62 | 0.168524 | 5.451476 | 4547 | 11 | 2.557296 |
15 | 강서구 | 3.68 | 0.551847 | 4.128153 | 1670 | 21 | 0.939231 |
16 | 구로구 | 3.54 | 0.270023 | 4.269977 | 4842 | 24 | 2.723208 |
17 | 금천구 | 3.68 | 0.221410 | 4.458590 | 9745 | 24 | 5.480723 |
18 | 영등포구 | 3.28 | 0.409672 | 3.870328 | 1681 | 21 | 0.945418 |
19 | 동작구 | 4.44 | 0.477893 | 4.962107 | 16761 | 25 | 9.426619 |
20 | 관악구 | 3.40 | 1.000000 | 3.400000 | 12780 | 29 | 7.187649 |
21 | 서초구 | 4.42 | 0.282266 | 5.137734 | 8265 | 32 | 4.648351 |
22 | 강남구 | 3.52 | 0.456061 | 4.063939 | 7563 | 19 | 4.253536 |
23 | 송파구 | 3.40 | 0.450434 | 3.949566 | 19450 | 22 | 10.938950 |
24 | 강동구 | 4.14 | 0.261584 | 4.878416 | 5738 | 21 | 3.227131 |
In [447]:
# PPT 편의를 위해 csv로 내보냅니다.
scout_df.to_csv('여성안심스카우트_결과.csv',encoding = 'CP949', index = False)
In [ ]:
'전문지식 함양 > 학습내용 정리' 카테고리의 다른 글
[대학수업] 텍스트데이터분석1 (0) | 2022.06.28 |
---|---|
[대학수업] 빅데이터처리와시각화 python 프로그래밍(streamlit 시각화) (0) | 2022.06.27 |
[대학수업] 빅데이터처리와시각화 (0) | 2022.06.27 |
[공모전] 2021년 KOSAC 대학생 광고대회 참가 후기 (0) | 2021.12.28 |
[대학수업] 서비스마케팅 (0) | 2021.12.27 |