- 서울시 구별 CCTV 현황 데이터 확보 (Python, Pandas)
- 인구 현황 데이터 확보 (Python, Pandas) ✔
- CCTV 데이터와 인구 형황 데이터 합치기 (Python, Pandas)
- 데이터 정리하고 정렬하기 (Python, Pandas)
- 그래프를 그릴 수 있는 능력 (Matplotlib)
- 전체적인 경향을 파악할 수 있는 능력 (Regression using Numpy)
- 그 경향에서 벗어난 데이터를 강조하는 능력 (Insight and Visualization)
서울시 인구 현황 데이터 분석
< 데이터 확인해보기 >
데이터 불러오기
import pandas as pd
pop_Seoul = pd.read_excel('경로/~/Seoul_Population.xls', header=2, usecols='B, D, G, J, N')
pop_Seoul.head()
-- 출력 --
컬럼명 변경
pop_Seoul.rename(
columns={
pop_Seoul.column[0]:'구별',
pop_Seoul.column[1]:'인구수',
pop_Seoul.column[2]:'한국인',
pop_Seoul.column[3]:'외국인',
pop_Seoul.column[4]:'고령자'
},
inplace=True
)
pop_Seoul.head()
-- 출력 --
불필요한 데이터 삭제 : 합계 행
pop_Seoul.drop([0], inplace=True)
pop_Seoul.head()
-- 출력 --
구별 컬럼의 데이터의 값(유일한 값) 확인
print( pop_Seoul['구별'].unique() )
print( len(pop_Seoul['구별'].unique()) )
-- 출력 --
이터 양이 적을때는 괜찮지만, 데이터가 많아지면 unique 조사를 통해 데이터를 눈으로 초반 검증을 하는 것이 좋다. |
외국인과 고량자 비율을 데이터 만들기
pop_Seoul['외국인비율'] = pop_Seoul['외국인'] / pop_Seoul['인구수'] * 100
pop_Seoul['고령자비율'] = pop_Seoul['고령자'] / pop_Seoul['인구수'] * 100
pop_Seoul.head()
-- 출력 --
컬럼 연산이 편하다는 것이 Python의 장점 |
인구수가 많은 구
pop_Seoul.sotr_values(by='인구수', ascending=False).head()
-- 출력 --
송파구, 강서구, 강남구, 노원구, 관악구 순으로 인구수가 많다. |
외국인이 많은 구
pop_Seoul.sotr_values(by='외국인', ascending=False).head()
-- 출력 --
영등포구, 구로구, 금천구, 노원구, 관악구 순으로 외국인이 많다. |
외국인 비율이 높은 구
pop_Seoul.sotr_values(by='외국인비율', ascending=False).head()
-- 출력 --
영등포구, 금천구, 구로구, 중구, 용산구 순으로 외국인 비율이 높다. |
고령자가 많은 구
pop_Seoul.sotr_values(by='고령자', ascending=False).head()
-- 출력 --
송파구, 강서구, 은평구, 노원구, 관악구 순으로 고령자가 많다. (인구수가 많은 구와 비슷하다.) |
고령자 비율이 높은 구
pop_Seoul.sotr_values(by='고령자비율', ascending=False).head()
-- 출력 --
강북구, 종로구, 중구, 도봉구, 동대문구 순으로 고령자 비율이 높다. |