데이터 취업 스쿨 스터디 노트 -(24) 인구 소멸 위기 지역 파악, 카르토그램

테리·2024년 7월 16일
0

배경

목표

  • 인구 소멸 위기 지역 파악
  • 인구 소멸 위기 지역의 지도 표현
  • 지도 표현에 대한 카르토그램 표현

fillna()

fillna(method='pad')

2. 데이터 읽고 인구 소멸 지역 계산하기

warnings 설정

header 설정

컬럼 이름 변경

시도 컬럼에 있는 소계 데이터 제거

조건식 활용한 데이터 변경(loc)

열 추가

pivot_table

소멸 비율 계산

소멸 위기지역 조회 및 인덱스 재설정

  • get_level_values(), reset_index() 활용

컬럼명 정리

3. 지도 시각화를 위한 지역별 ID 만들기

데이터 길이만큼 None값 리스트 만들기

광역시가 아닌 '시' 지역의 구 만들기

(1) 일반 시 이름과 세종시, 광역시도 일반 구 정리

offset index 활용

(2) 행정구('구'가 있는 일반시)

(3) 고성군 분별

(3)의 결과를 보면 '일산동구', '일산서구'의 경우 '고양 일산동', '고양 일산서'로 저장되어 있는 것을 확인할 수 있다.
(2)의 코드를 작성할 때 '일산동구', '일산서구'를 고려하지 않았으며, 해당 강의에서 이 부분을 놓지고 si_name 리스트를 완성한 것으로 보여진다.

지역별 ID를 컬럼으로 넣기

4. 지도 그리기(카르토그램)

엑셀에서 그린 지도를 읽어옴.

엑셀 데이터를 데이터 프레임으로 변환 .stack() 함수(좌표 형태로 사용하기 위해.)

인덱스 초기화 설정

경계선 좌표 입력

matplotlib에 주석달기 annotate

  • format 함수로 명칭 수정
  • annotate 활용
  • 시도의 이름을 표현하는 함수
  • 하단 코드는 샘플용으로 코드를 먼저 짜봄

zip() 함수 활용해 지역 표기하기

path가 [(5,1), (5,2), (7,2), (7,3), (11,3), (11,0)]일 때, *path는 (5,1), (5,2), (7,2), (7,3), (11,3), (11,0)와 같이 개별 요소로 분해됨.

간단히 경계선과 시도 이름을 표현하기 위해 샘플용으로 코드를 먼저 짜봄

데이터 프레임 합치기

데이터프레임을 합치기 전 검증작업

set() 함수 활용

  • 집합과 같은것.
  • 중복된 값은 자동으로 중복 제거
  • 리스트와 같이 반복가능한(iterabel) 객체일 경우 set을 만들어줌.

불필요한 데이터 제거 후 다시 실행.

merge로 데이터 합치기

카르토그램으로 표현

카르토그램을 그리기 위한 함수 생성

mapdata: 인구현황 데이터를 y, x값에 맞게 시각화 하기 위해 필요.
vmax, vmin: plt.pcolor()에 사용하기 위해 필요.
whitelabelmin: 텍스트 색상 조건을 넣기 위해 필요.

  • 색상을 만들 때 최소값을 흰색으로 한다.
  • 색상을 만들 때 중간값을 흰색으로 한다.
  • 시도의 이름을 표현
  • 위의 심플 데이터와 달라진 점은 annocolor라는 targetData 조건에 따른 텍스트 색상이 바뀐다는 것.
  • 경계선과 시도이름을 모두 표현
  • 최종본(위의 함수들을 모두 사용하게 됨.)
    plt.pcolor의 vmin과 vmax가 음수와 양수로 나뉘면 이때 0은 자동으로 중심에 위치하게 된다. 다만 적절한 색상맵(cmap)선택이 중요하다.

결과 출력

folium 지도 시각화

0개의 댓글