# age1.csv 파일을 이용해서 선택한 지역의 인구 구조와 가장 비슷한
# 인구 구조를 가지고 있는 지역의 그래프와 지역을 출력하기
# 선택한 지역은 한 개만 가능하도록 한다.
import numpy as np
import csv
f = open("age1.csv")
data = csv.reader(f)
next(data)
data = list(data)
name = "신림동"
mn = 1
result_name = ''
result = 0 # 가장 비슷한 인구 비율
for row in data :
if name in row[0] :
row = list(map((lambda x:x.replace(",","")),row))
home = np.array(row[3:],dtype=int) / int(row[2])
for row in data :
row = list(map((lambda x:x.replace(",","")),row))
away = np.array(row[3:],dtype=int) / int(row[2])
# 선택한 지역의 수치와 다른 지역 수치의 차의 제곱. : 양수값
s = np.sum((home-away)**2)
# s < mn 조건 away 데이터가 현재까지 가장 인구비율이 비슷한 지역
# 선택된 지역은 안됨
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=100)
plt.rc('font',family="Malgun Gothic")
plt.title(name + " 지역과 가장 비슷한 인구 구조를 가진 지역")
# 선택된 지역 그래프
plt.plot(home, label = name)
# 선택된 지역과 인구 비율이 가장 비슷한 지역 그래프
plt.plot(result, label = result_name)
plt.legend()
plt.show()
'Python' 카테고리의 다른 글
Python - 변수저장, 데이터프레임 필터(조회기능), 데이터프레임 병합 (0) | 2021.07.05 |
---|---|
Python - 결측값처리 (0) | 2021.07.02 |
Python - Numpy 연습문제 (0) | 2021.07.01 |
Python - 지도 (folium) 연습문제 (0) | 2021.06.30 |
Python - Numpy (0) | 2021.06.29 |