[제로베이스] 데이터 사이언스 12기 - (03-06 스터디노트)

윤태호·2023년 3월 6일
0
post-thumbnail

오늘 수강한 강의 - EDA Naver API (01 ~ 07), 인구 분석 (01 ~ 12)

01 ~ 03 Naver API 등록 및 간단한 사용

Naver API 등록

  • https://developers.naver.com/main/
  • 네이버 개발자 센터
  • 네이버 로그인
  • 서비스 API 선택
  • 데이터랩
  • 오픈 API 이용 신청

  • 환경 추가
  • WEB 설정
  • http://localhost 입력
  • 등록하기
  • Client ID
  • Client Secret
  • 복사해두기
  • 위 주소를 즐겨찾기에 두면 나중에 찾기 편리하다
  • 일일 사용량이 정해져 있다

Naver API 사용

  • API에 대한 Python 예제
  • 그 중에 API 기본 정보 항목에 보면 요청 URL이 있다
  • 웹 API는 이 경로를 이용한다
  • 예제 코드를 Jupyter Notebook에 복사
  • client_id, client_secret 변수에 발급받은 내용을 넣어준다
  • urllib: http 프로토콜에 따라서 서버의 요청/응답을 처리하기 위한 모듈
  • urllib.request: 클라이언트의 요청을 처리하는 모듈
  • urllib.parse: url 주소에 대한 분석
  • 이 주소가 네이버 블로그 검색 결과를 가져오는 주소이다
  • 응답 결과를 response에 저장
  • 결과를 보기 위해서는 약간의 작업이 더 필요하다
  • http.clinet.HTTPResponse 클래스는 getcode() 함수를 이용해서 응답의 상태를 확인할 수 있다
  • 200은 정상
  • 사용하는 서비스마다 에러코드가 조금씩 다르므로 잘 확인하자
  • 글자로 읽을 때 decode로 utf-8을 설정해줘야 한다
  • 이 주소는 네이버 책 검색 결과를 가져오는 주소이다

  • 이 주소는 네이버 영화 검색 결과를 가져오는 주소이다

  • 이 주소는 공개된 네이버 카페 검색 결과를 가져오는 주소이다

  • 이 주소는 공개된 네이버 쇼핑 검색 결과를 가져오는 주소이다

  • 이 주소는 공개된 네이버 백과사전 검색 결과를 가져오는 주소이다

04 ~ 07 Naver API에서 모은 몰스킨 데이터 정리하고 시각화하기

상품검색

  • 몰스킨이라는 이름으로 검색

  • 반고흐가 쓴 몰스킨 노트의 메모
  • 이 순서로 함수를 만들어 나감

get_search_url

get_result_onpage

get_fields



actMain


  • 인덱스에 문제가 있음

toExcel

시각화

  • matplotlib 한글 대응
  • 몰스킨 노트 판매자 조회

01 ~ 03 인구 소멸 위기 지역

인구 현황 데이터 정리 및 소멸 위기 지역 파악

  • 한글설정
  • 엑셀을 읽어보자
  • 일부 컬럼의 이름도 바꿔주자

  • 소계는 제거

  • 소멸 지역을 조사하기 위한 데이터를 만들어 두자
  • pivot_table
  • 소멸 비율 계산
  • 소멸 위기 지역인지 체크
  • 소멸 위기 지역을 바로 조회해볼수 있다
  • 대부분 "군" 지역

04 ~ 06 인구 현황 데이터에 지도 ID 만들기

인구 현황 데이터에 지도 ID 만들기

  • 전국의 고유한 ID를 만들어야함
  • 만들어야 할 ID 는 아래와 같다
- 서울 중구
- 서울 서초
- 통영
- 남양주
- 포항 북구
- 인천 남동
- 안양 만안
- 안양 동안
- 안산 단원


  • 자치구는 어차피 자료에서 나타나니, 행정구를 가진 지역만 신경쓰면 된다



  • 여기서는 일반 시의 이름과 세종시, 그리고 광역시도의 일반 구를 정리한다
  • 강릉시 -> 강릉
  • 춘천시 -> 춘천 이런 식으로 정리
  • 세종시는 세종특별자치시 -> 세종
  • 중구 -> "광역시도" + 중구
  • 강남구 -> "광역시도" + 강남
  • 행정구에 대해 특별히 다시 계산한다
  • 광역시나 특별시, 자치시가 아닌 경우의 행정구에 대해서만 적용
  • 행정구를 지정한 dict형 자료에 있는 지역인지 검색
  • 분당구 -> 분당, 북구 -> 북구
  • 특별히 너무 긴 이름의 구는 짧게 처리
  • 고성군 -> 강원도 고성(강원) -> 고성(강원)
  • 고성군 -> 경상남도 고성(강원) -> 고성(경남)


  • 인구 소멸 위기 지역 파악이 끝남
  • 지도에 그리기 위한 ID도 생성 완료

07 ~ 12 카르토그램으로 인구현황 시각화하기

카르토그램

  • 엑셀에서 그린 지도 모양을 읽어온다


  • 인덱스로 나타난 좌표를 데이터로 사용하기 위해 reset_index
  • 이름도 바꾸기
  • draw_korea = draw_korea_raw_staked
  • 이 그림을 그려야 한다
  • 경계선 그리기
  • 시도의 이름을 표현하는 함수
  • 경계선과 시도 이름

  • 데이터 검증
  • 결과가 다르다
  • 차집합은 교환법칙이 성립하지 않는다
  • 광역시가 아닌데 행정구를 가지고있던 구들이 pop에 남아있었다
  • 이 데이터는 그냥 지우면 된다
  • 지도를 그리기 위한 데이터와 인구현황 데이터를 합치자
  • 그림을 그리기 위한 데이터를 계산하는 함수
  • 이 함수는 색상을 만들때 최소값을 흰색으로 한다
  • blockedMap은 인구현황이고, targetData는 그리고 싶은 컬럼
  • 그림을 그리기 위한 데이터를 계산하는 함수
  • 이 함수는 색상을 만들때 중간값을 흰색으로 한다
  • blockedMap은 인구현황이고, targetData는 그리고 싶은 컬럼
  • whitelabelmin 적용

  • drawkorea에 인구수 합계를 넣었음
  • 소멸 위기 지역
  • 여성비율
  • 2030 여성비율
  • folium 사용
  • 인구수 합계 그리기

  • 소멸 위기 지역

재미있었던 부분

네이버 API를 사용하여 필요한 정보를 불러오고 시각화 하는 부분이 가장 기억에 남고 재미있었다

어려웠던 부분

인구 분석의 전국의 고유한 ID를 만드는 부분이 코드양도 많고 이해하기 어려운 부분이 좀 있었다

느낀점 및 내일 학습 계획

가면 갈수록 할수 있는것이 많아지지만 그럴수록 외워야 하고 손에 익어야 하는 것이 많아지는 것이므로 걱정이 좀 된다
내일은 이어서 SQL로 넘어간다

profile
부트캠프 참여중

0개의 댓글