본문 바로가기
Project Jupyter

Project Jupyter(인구 공공데이터)-2024-06-17

by 앵보몬 2024. 6. 17.
728x90
반응형

요구사항

1) 남성과 여성의 성별 인구 분포를 그래프로 도출하시오.

2) CSV 파일에서 인구와 성별 데이터를 읽어오세요.

3) matplotlib을 사용하여 인구수를 x축, 나이을 y축으로 하는 선 그래프를 그리세요.

4) 그래프 제목, x축 라벨, y축 라벨을 적절히 설정하세요.

 

예외 처리

1) 설명 : 파일 입출력 및 잘못된 입력에 대한 예외 처리

2) 사례 : 파일이 없을 경우, 잘못된 수량 입력

3) 핵심 : 안정적인 프로그램 동작 보장

import csv
f = open('gender1.csv')
data = csv.reader(f)

m = []
f = []

name = input('찾고 싶은 지역의 이름을 입력해주세요(예)목포시 : ')
administrative_uilding = input('찾고 싶은 지역의 행정동을 알려주세요(예)부흥동 : ')

for row in data :
   
    if name in row[0] and administrative_uilding in row[0]:
         for i in row[3:104]:
             m.append(-int(i.replace(',','')))
         for i in row[106:]:
             f.append(int(i.replace(',','')))
         break
       
           
import matplotlib.pyplot as plt
plt.style.use('ggplot')
plt.figure(figsize = (5, 2), dpi = 300)
plt.rc('font', family = 'Malgun Gothic')
plt.rcParams['axes.unicode_minus'] = False
plt.title(f"{name} {administrative_uilding} 지역의 남녀 성별 인구 분포")
plt.barh(range(101), m, color = "r", label = "남성")
plt.barh(range(101), f, color = "b", label = "여성")
plt.xlabel("인구수")
plt.ylabel("나이")
plt.legend()
plt.show()

 

gender1.csv
2.69MB

728x90
반응형