우리 동네와 인구 구조가 가장 비슷한 동네를 찾는 코드

     

    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()

    지금까지 ‘우리 동네와 가장 비슷한 인구 구조를 가진 지역은 어디일까?’라는 호기심으로 시작한 데이터 프로젝트를 함께 살펴보았습니다.

    실제로 여러분만의 데이터 프로젝트를 진행하다 보면, 이 책에서 경험한 것보다 훨씬 더 많은 시행착오와 오류를 만나게 될 것입니다. 그러나 오류는 당연한 것이고, 그런 오류들을 해결하는 과정에서 내공이 쌓인다는 사실을 잊지 않았으면 좋겠습니다.

    만약 당장 새로운 아이디어가 선뜻 떠오르지 않는다면 이 코드의 문제점을 발견해 개선하거나 새로운 기능을 직접 추가하기 바랍니다.

    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.