-
[Python/Pandas/Matplotlib] 판다스를 이용하여 인구 구조 분석하고 꺾은선 그래프로 시각화하기Study/Python 2022. 2. 9. 14:11
판다스를 이용하여 인구 구조 분석하고 꺾은선 그래프 그리기
import pandas as pd import matplotlib.pyplot as plt df = pd.read_csv('age.csv', encoding = 'cp949', index_col = 0) df = df.div(df['총인구수'], axis = 0) # 전체 데이터를 총인구수로 나눠서 비율로 변환 del df['총인구수'], df['연령구간인구수'] # 총 인구수, 연령구간인구수 열 삭제 name = input('원하는 지역의 이름을 입력해주세요') a = df.index.str.contains(name) df2 = df[a] plt.rc('font', family = 'Malgun Gothic') df2.T.plot() plt.show()
전체 코드
1. 라이브러리 및 모듈 import
import pandas as pd import matplotlib.pyplot as plt
- 데이터프레임을 작성하기 위하여 pandas 라이브러리를 불러와 pd로 사용할 수 있도록 한다.
- 그래프로 시각화하기 위해 matplotlib 라이브러리의 pyplot 모듈을 import한다.
2. csv 파일을 읽어와 데이터프레임으로 저장하고 전처리 하기
df = pd.read_csv('age.csv', encoding = 'cp949', index_col = 0) df = df.div(df['총인구수'], axis = 0) # 전체 데이터를 총인구수로 나눠서 비율로 변환 del df['총인구수'], df['연령구간인구수'] # 총 인구수, 연령구간인구수 열 삭제
- pandas의 read_csv를 이용하여 'age.csv' 파일을 읽어와 df 데이터프레임에 저장한다.
- 전체 데이터를 총 인구수 열로 나눠서 비율로 변환한다.
- 그래프 작성 시 필요없는 총 인구 수, 연령 구간 인구 수 열을 삭제한다.
3. 데이터 가공하여 데이터프레임 새로 만들기
name = input('원하는 지역의 이름을 입력해주세요') a = df.index.str.contains(name) df2 = df[a]
- 찾고자하는 지역의 이름을 입력받아 name 변수에 저장한다.
- 입력받은 지역 이름(name) 문자열이 포함된 열을 df 데이터프레임에서 찾아내서 a 변수에 저장한다.
- a 변수를 데이터프레임 형태로 변환시켜 df2 데이터프레임에 저장한다.
4. 그래프 시각화하기
plt.rc('font', family = 'Malgun Gothic') df2.T.plot() plt.show()
- plt.rc()를 이용하여 한글 폰트를 맑은 고딕으로 지정한다.
- df2 데이터프레임의 행과 열을 이용하여 꺾은선 그래프를 작성한다.
- plt.show()를 이용하여 그래프를 화면에 나타낸다.
출력된 꺾은선 그래프
'Study > Python' 카테고리의 다른 글
[Python] 람다 함수 (0) 2022.04.04 [Python] 딕셔너리 개요 / 메소드 (0) 2022.04.03 [Python/Pandas] html에서 표를 읽어와 판다스를 이용하여 데이터프레임 작성하고 저장하기 (0) 2022.02.04 [Python/Matplotlib] 특정 지역과 비슷한 연령별 인구 구조를 가진 지역 추출 및 꺾은선 그래프로 시각화하기 (0) 2022.02.03 [Python/Matplotlib] 지하철 유무임 승하차 비율을 파이 차트로 시각화하기 (0) 2022.02.02