728x90
반응형
# 행안부, 연령별 인구 현황 파일 다운받기, 계, 연령구분단위 1세, 0~100세
import csv
f = open('./age1_utf.csv',encoding="utf8")
data = csv.reader(f)
next(data) # 헤더 제거, 첫줄 읽어버리기
for row in data :
print(row)
['서울특별시 (1100000000)', '9,575,355', '9,575,355', '44,116', '47,612', '51,389', '54,644', '60,226', '66,775', '68,122', '67,105', '72,631', '72,433', '74,702', '69,966', '72,360', '78,681', '74,635', '71,679', '75,052', '80,554', '81,153', '89,544', '108,121', '114,369', '120,701', '133,889', '142,513', '155,641', '160,766', '166,742', '172,551', '170,425', '155,942', '149,727', '146,537', '138,384', '137,327', '138,403', '134,457', '144,175', '151,702', '158,712', '157,393', '155,800', '139,387', '137,722', '136,405', '139,782', '148,291', '158,851', '163,010', '166,672', '171,150', '162,638', '166,009', '149,296', '141,771', '143,737', '145,888', '134,601', '151,699', '143,144', '162,666', '152,287', '142,186', '136,982', '127,836', '123,489', '127,802', '99,709', '99,786', '91,396', '76,633', '85,104', '80,194', '81,207', '79,145', '55,147', '59,598', '56,681', '63,261', '59,700', '46,471', '42,577', '39,035', '33,287', '29,726', '26,231', '21,958', '17,597', '14,591', '12,017', '9,371', '7,894', '6,808', '5,082', '3,741', '2,523', '1,790', '1,469', '1,321', '828', '2,520']
# 인구구조 알고싶은 동 입력
import numpy as np
import csv
import matplotlib.pyplot as plt
f = open('./age1_utf.csv',encoding="utf8")
# 스트림 : 데이터의 이동 통로
# 한번 읽으면 사라짐, 그래서 문제가 될지도, 또 쓰고 싶으면, 별도로 저장해야 함.
data = csv.reader(f)
next(data) # 헤더 제거, 첫줄 읽어버리기
name = input('지역의 이름(읍면동 단위) 입력')
for row in data :
if name in row[0] :
name = row[0]
print(name)
row = list(map((lambda x : x.replace(',', '')), row)) # 문자열 제거 숫자내부 m 제거해서 정수값 변경가능
home = np.array(row[3:], dtype = int)
plt.style.use('ggplot')
plt.figure(figsize = (10, 5), dpi = 100)
plt.rc('font', family = 'Malgun Gothic')
plt.title(name + ' 지역의 인구 구조')
plt.plot(home)
plt.show()
# 지역의 이름(읍면동 단위) 입력강남구
# 서울특별시 강남구 (1168000000)

가장 비슷한 인구구조를 가진 그래플와 지역 출력
# 가장 비슷한 인구구조를 가진 그래플와 지역 출력
import numpy as np
import csv
import matplotlib.pyplot as plt
import re
f = open('./age1_utf.csv',encoding="utf8")
# 스트림 : 데이터의 이동 통로
# 한번 읽으면 사라짐, 그래서 문제가 될지도, 또 쓰고 싶으면, 별도로 저장해야 함.
data = csv.reader(f)
next(data) # 헤더 제거, 첫줄 읽어버리기
# name = input('지역의 이름(읍면동 단위) 입력')
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)) # 문자열 제거 숫자내부 m 제거해서 정수값 변경가능
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) # 차이가 마이너스가 될수도, 절대값 개념
if s < mn and name not in row[0] :
mn = s # mn 저장
result_name = row[0]
result = away
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()
import numpy as np
import pandas as pd
import csv
import matplotlib.pyplot as plt
import re
df = pd.read_csv('age_14.csv', encoding="cp949", index_col = 0)
print(df.head())
df = df.div(df['총인구수'], axis=0)
del df['총인구수'], df['연령구간인구수']
name = '신림동'
a = df.index.str.contains(name) # 신림동 레코드
df2 = df[a]
plt.rc('font', family = 'Malgun Gothic')
df2.T.plot()
plt.show()
총인구수 연령구간인구수 0세 1세 2세 3세 \
행정구역
서울특별시 (1100000000) 9857426 9857426 61253 70532 74322 72482
서울특별시 종로구 (1111000000) 154770 154770 652 794 911 895
서울특별시 종로구 청운효자동(1111051500) 13272 13272 81 82 90 105
서울특별시 종로구 사직동(1111053000) 9441 9441 43 63 75 68
서울특별시 종로구 삼청동(1111054000) 2907 2907 12 4 22 13
4세 5세 6세 7세 ... 91세 92세 \
행정구역 ...
서울특별시 (1100000000) 71688 78941 75386 75929 ... 5892 4695
서울특별시 종로구 (1111000000) 859 1046 909 1012 ... 149 115
서울특별시 종로구 청운효자동(1111051500) 97 116 117 116 ... 12 14
서울특별시 종로구 사직동(1111053000) 76 81 74 83 ... 11 13
서울특별시 종로구 삼청동(1111054000) 12 13 20 11 ... 5 2
93세 94세 95세 96세 97세 98세 99세 100세 이상
행정구역
서울특별시 (1100000000) 3589 3501 2569 1851 1436 1010 736 5519
서울특별시 종로구 (1111000000) 95 79 81 60 46 37 26 226
서울특별시 종로구 청운효자동(1111051500) 7 7 8 3 5 1 1 17
서울특별시 종로구 사직동(1111053000) 7 5 7 3 6 4 4 17
서울특별시 종로구 삼청동(1111054000) 3 3 2 2 0 2 1 7
[5 rows x 103 columns]

반응형
'Data_Science > Data_Analysis_Py' 카테고리의 다른 글
| 13. Stockprice (0) | 2021.10.26 |
|---|---|
| 12. titanic (2 (0) | 2021.10.26 |
| 10. folium 2 (0) | 2021.10.26 |
| 9. tips || '21.06.28. (0) | 2021.10.26 |
| 8. iris || '21.06.28. (0) | 2021.10.26 |
