Study/Python
[Python/Pandas/Matplotlib] 판다스를 이용하여 인구 구조 분석하고 꺾은선 그래프로 시각화하기
ChoiSenn
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()를 이용하여 그래프를 화면에 나타낸다.
출력된 꺾은선 그래프
