본문 바로가기

luwaz의 일상 팔레트/luwaz의 코딩 이야기

2024.5.3 Data 분석 연습(출산율)

 

 

KOSIS에서 출산율 관련 Data를 다운로드하였다.(https://kosis.kr/index/index.do)

Data 전처리

 

정리되어있지 않은 Data 들을 T 메서드를 사용하여 보기 쉽게 바꿔주고 

필요 없어 보이는 Data 들은 drop함수를 사용하여 삭제 처리 해 주었다.

rename 함수를 사용하여 열의 이름을 바꿔주고 

 

첫 번째 행을 삭제해 주고 

reset_index 함수를 사용함으로써 연도별 열을 만듦으로써 Data 전처리를 완료하였다.

13번째 행을 보면 2023 p)라고 되어있는데 2023으로 바꾸어 주고 싶었다.

이것저것 시도 해보니 rename함수가 아닌 replace함수를 사용해야 변경 가능 하였다.

 

replace 함수와 rename 함수의 차이점 

replace 함수 : 문자열을 포함한 데이터의 값을 변경할 때 사용된다.
rename 함수: 데이터프레임의 열 이름을 변경하는 데 사용된다.

결론: replace 함수는 데이터프레임의 값을 변경할 때 사용하며, rename 함수는 데이터프레임의 열 이름을 변경할 때 사용한다(rename 함수로는 열 내의 값은 변경할 수 없다)

 

Data 분석 시작

Data 전처리를 마친 출산율 Data를 가지고 그래프를 그리고 싶었다.

X축은 연도별, Y축은 합계출산율(명)을 가지고 seaborn을 사용하여 그래프를 그렸는데......

한글이 나오지 않는 등 여러 가지 문제가 발생하였다.

하지만 결국 해결하였다.

matplotlib 한글이 나오지 않을 때 설정 변경을 통한 한글폰트 적용방법

plt.rc('font', family='NanumGothic') → matplotlib의 폰트 설정을 변경하는 명령어
'font'는 폰트 설정을 의미하고, 'family'는 사용할 폰트의 종류 지정을 의미한다.

plt.rc('axes', unicode_minus=False) → 축(axis)에 관련된 설정을 변경하는 명령어
'axes'는 축 관련 설정을 의미하고, 'unicode_minus=False'는 축에 마이너스 기호(-)가 정상적으로 표시되도록 설정하는 코드이다.

그래프에서 한글은 정상적으로 나왔는데 이번에는 Y축이 이상했다.

나는 출산율이 낮아지는 것을 시각적으로 확인하고 싶었다.

이를 해결하기 위해 많은 노력을 하였고 결국 해결하였다.

이런 문제가 발생한 원인은 Data type에 있었다.

합계출산율(명)을 확인해 보니 Data type 이 object

나는 이걸 astype함수를 사용하여 float으로 변경해 주었다.

 

astype함수는 데이터프레임 열의 데이터 타입을 변경할 때 사용한다.

이제야 그래프가 한눈에 들어왔다.

다른 것들도 그래프로 그려 보았다.

이 Data를 좀 더 보완하려면 연령별 인구동향도 알아야겠지만 그건 다음에 알아보자.

마지막으로 heatmap을 사용하여 상관관계를 알아보자.

|±1| 에 가까울수록 Data의 상관관계가 높으며 +1은 정비례 -1은 반비례를 나타낸다.