우리 동네와 인구 구조가 가장 비슷한 동네를 찾는 코드
import numpy as np import csv # ➊ 데이터를 읽어온다. f = open('age.csv') data = csv.reader(f) next(data) data = list(data) # ➋ 궁금한 지역의 이름을 입력받는다. name = input('인구 구조가 알고 싶은 지역의 이름(읍면동 단위)을 입력해주세요 : ') mn = 1 result_name = '' result = 0 # ➌ 궁금한 지역의 인구 구조를 저장한다. for row in data : if name in row[0] : home = np.array(row[3:], dtype=int)/int(row[2]) # ➍ 궁금한 지역의 인구 구조와 가장 비슷한 인구 구조를 가진 지역을 찾는다. for row in data : away = np.array(row[3:], dtype=int)/int(row[2]) s = np.sum((home-away)**2) if s < mn and name not in row[0] : mn = s result_name = row[0] result = away # ➎ 궁금한 지역의 인구 구조와 가장 비슷한 곳의 인구 구조를 시각화한다. import matplotlib.pyplot as plt plt.style.use('ggplot') plt.figure(figsize=(10,5), dpi=300) plt.rc('font', family='Malgun Gothic') plt.title(name+' 지역과 가장 비슷한 인구 구조를 가진 지역') plt.plot(home, label=name) plt.plot(result, label=result_name) plt.legend() plt.show()
지금까지 ‘우리 동네와 가장 비슷한 인구 구조를 가진 지역은 어디일까?’라는 호기심으로 시작한 데이터 프로젝트를 함께 살펴보았습니다.
실제로 여러분만의 데이터 프로젝트를 진행하다 보면, 이 책에서 경험한 것보다 훨씬 더 많은 시행착오와 오류를 만나게 될 것입니다. 그러나 오류는 당연한 것이고, 그런 오류들을 해결하는 과정에서 내공이 쌓인다는 사실을 잊지 않았으면 좋겠습니다.
만약 당장 새로운 아이디어가 선뜻 떠오르지 않는다면 이 코드의 문제점을 발견해 개선하거나 새로운 기능을 직접 추가하기 바랍니다.