데이터 흝어보기
- CCTV 데이터와 인구 통계를 가져와 필요한 데이터로 정제하겠습니다.
import pandas as pd
import numpy as np
CCTV_Seoul = pd.read_csv('../data/01. Seoul_CCTV.csv', encoding = 'utf-8')
CCTV_Seoul.head()
|
기관명 |
소계 |
2013년도 이전 |
2014년 |
2015년 |
2016년 |
0 |
강남구 |
3238 |
1292 |
430 |
584 |
932 |
1 |
강동구 |
1010 |
379 |
99 |
155 |
377 |
2 |
강북구 |
831 |
369 |
120 |
138 |
204 |
3 |
강서구 |
911 |
388 |
258 |
184 |
81 |
4 |
관악구 |
2109 |
846 |
260 |
390 |
613 |
CCTV_Seoul.tail()
|
기관명 |
소계 |
2013년도 이전 |
2014년 |
2015년 |
2016년 |
20 |
용산구 |
2096 |
1368 |
218 |
112 |
398 |
21 |
은평구 |
2108 |
1138 |
224 |
278 |
468 |
22 |
종로구 |
1619 |
464 |
314 |
211 |
630 |
23 |
중구 |
1023 |
413 |
190 |
72 |
348 |
24 |
중랑구 |
916 |
509 |
121 |
177 |
109 |
CCTV_Seoul['최근 증가율'] = (
(CCTV_Seoul['2014년']+CCTV_Seoul['2015년']+CCTV_Seoul['2016년'])/CCTV_Seoul['2013년도 이전'] *100
)
CCTV_Seoul.sort_values(by='최근 증가율', ascending = False).head()
|
기관명 |
소계 |
2013년도 이전 |
2014년 |
2015년 |
2016년 |
최근 증가율 |
22 |
종로구 |
1619 |
464 |
314 |
211 |
630 |
248.922414 |
9 |
도봉구 |
825 |
238 |
159 |
42 |
386 |
246.638655 |
12 |
마포구 |
980 |
314 |
118 |
169 |
379 |
212.101911 |
8 |
노원구 |
1566 |
542 |
57 |
451 |
516 |
188.929889 |
1 |
강동구 |
1010 |
379 |
99 |
155 |
377 |
166.490765 |
# header을 통해 위에 두줄 제거할 수 있었다.
# usecols을 통해 필요한 열만 가져올 수 있었다.
# drop을 통해 행을 제거할 수 있는데, 인덱스로 접근할때는 대괄호를 쳐주어야한다.
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.head()
|
자치구 |
계 |
계.1 |
계.2 |
65세이상고령자 |
1 |
종로구 |
164257 |
154770 |
9487 |
26182 |
2 |
중구 |
134593 |
125709 |
8884 |
21384 |
3 |
용산구 |
244444 |
229161 |
15283 |
36882 |
4 |
성동구 |
312711 |
304808 |
7903 |
41273 |
5 |
광진구 |
372298 |
357703 |
14595 |
43953 |
# 인덱스로 접근할 때는 다음과 같이 columns[숫자] 형태로 접근한다.
# rename 쓸 때 앞에 인수 columns = 안넣어주면 반영 안된다.
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.head()
|
구별 |
인구수 |
한국인 |
외국인 |
고령자 |
1 |
종로구 |
164257 |
154770 |
9487 |
26182 |
2 |
중구 |
134593 |
125709 |
8884 |
21384 |
3 |
용산구 |
244444 |
229161 |
15283 |
36882 |
4 |
성동구 |
312711 |
304808 |
7903 |
41273 |
5 |
광진구 |
372298 |
357703 |
14595 |
43953 |
pop_Seoul.tail()
|
구별 |
인구수 |
한국인 |
외국인 |
고령자 |
21 |
관악구 |
520929 |
503297 |
17632 |
70046 |
22 |
서초구 |
445401 |
441102 |
4299 |
53205 |
23 |
강남구 |
561052 |
556164 |
4888 |
65060 |
24 |
송파구 |
671173 |
664496 |
6677 |
76582 |
25 |
강동구 |
440359 |
436223 |
4136 |
56161 |
pop_Seoul['외국인 비율'] = (pop_Seoul['외국인']/pop_Seoul['인구수'] *100)
pop_Seoul['고령자 비율'] = (pop_Seoul['고령자']/pop_Seoul['인구수'] *100)
pop_Seoul.sort_values(by='외국인 비율', ascending=False).head()
|
구별 |
인구수 |
한국인 |
외국인 |
고령자 |
외국인 비율 |
고령자 비율 |
19 |
영등포구 |
402024 |
368550 |
33474 |
53981 |
8.326369 |
13.427308 |
18 |
금천구 |
253491 |
235154 |
18337 |
34170 |
7.233787 |
13.479769 |
17 |
구로구 |
441559 |
410742 |
30817 |
58794 |
6.979135 |
13.315095 |
2 |
중구 |
134593 |
125709 |
8884 |
21384 |
6.600640 |
15.887899 |
3 |
용산구 |
244444 |
229161 |
15283 |
36882 |
6.252148 |
15.088118 |
pop_Seoul.sort_values(by='고령자 비율', ascending=False).head()
|
구별 |
인구수 |
한국인 |
외국인 |
고령자 |
외국인 비율 |
고령자 비율 |
9 |
강북구 |
328002 |
324479 |
3523 |
56530 |
1.074079 |
17.234651 |
1 |
종로구 |
164257 |
154770 |
9487 |
26182 |
5.775705 |
15.939656 |
2 |
중구 |
134593 |
125709 |
8884 |
21384 |
6.600640 |
15.887899 |
10 |
도봉구 |
346234 |
344166 |
2068 |
53488 |
0.597284 |
15.448512 |
6 |
동대문구 |
366011 |
350647 |
15364 |
55718 |
4.197688 |
15.223040 |
- 데이터가 너무 많은거 같으니 어떠한 요소들이 있는지만 대충 봅시다.
pop_Seoul["구별"].unique()
array(['종로구', '중구', '용산구', '성동구', '광진구', '동대문구', '중랑구', '성북구', '강북구',
'도봉구', '노원구', '은평구', '서대문구', '마포구', '양천구', '강서구', '구로구', '금천구',
'영등포구', '동작구', '관악구', '서초구', '강남구', '송파구', '강동구'], dtype=object)
len(pop_Seoul["구별"].unique())
25
CCTV_Seoul["기관명"].unique()
array(['강남구', '강동구', '강북구', '강서구', '관악구', '광진구', '구로구', '금천구', '노원구',
'도봉구', '동대문구', '동작구', '마포구', '서대문구', '서초구', '성동구', '성북구', '송파구',
'양천구', '영등포구', '용산구', '은평구', '종로구', '중구', '중랑구'], dtype=object)
len(CCTV_Seoul["기관명"].unique())
25