03 넷플릭스 시청 데이터로 알아보는 데이터형 변환
타이타닉, 쥬라기공원, 스타워즈를 본 나와 비슷한 유저는? 넷플릭스 데이터 대회에 사용된 데이터 일부를 JSON, 사전형으로 변환하고 재정렬해보며 비슷한 성향의 유저를 찾아봅니다.
데이터가 많은 경우 딕셔너리와 리스트의 기능은 크게 차이날 수 있다.
데이터 빠르게 탐색하기
딕셔너리(dictionary)는 키와 값이 키:값 형태로 이루어진 데이터 구조입니다.
키와 값이 쌍을 이루기 때문에 키를 이용해 값을 빠르게 찾아낼 수 있습니다.
리스트의 경우 kiwi의 뜻을 찾기 위해 모든 요소를 탐색해야 합니다. 책에서 원하는 단어를 찾을 때까지 한 장씩 넘기는 비효율적인 작업으로 약 100배 이상의 시간이 소요됩니다.
데이터 분석에 이용하기
사용자 번호: 작품 번호로 이루어진 netflix.txt을 읽고, 사용자 번호를 키로, 작품 번호를 값으로 하는 딕셔너리를 생성하는 make_dictionary() 함수를 완성하세요.
데이터의 집합 나타내기
파이썬의 set은 집합을 나타내는 데이터 구조입니다. 집합은 순서와 중복이 없는 데이터 구조로, 데이터 분석에서 중복을 무시해야 하는 경우에 사용할 수 있습니다.
예로, 수강생 명단이 주어졌을 때 set을 이용하면 학생 유형을 쉽게 구할 수 있습니다.
- A 수업과 B 수업 둘 중 하나 이상을 수강하는 학생 수 구하기
- A 수업과 B 수업을 모두 수강하는 학생 수 구하기
데이터 분석에 이용하기
작품 A와 B를 모두 시청한 사람의 수, 둘 중 하나만 시청한 사람의 수를 이용하면 두 작품의 유사도를 유추할 수 있습니다. 리스트와 딕셔너리 대신 집합을 사용하면 이를 훨씬 쉽게 구할 수 있습니다.
집합을 생성하고 원소를 추가, 삭제하는 함수를 연습해 보세요.
집합 연산자
집합 연산자를 이용하면, 합집합, 교집합, 차집합 등의 집합 연산을 수행할 수 있습니다.
- 합집합: 두 집합 중 최소 하나에 속하는 원소들의 집합
- 교집합: 두 집합에 모두 속하는 원소들의 집합
- B에 대한 A의 차집합: A에는 속하지만 B에는 속하지 않는 원소들의 집합
데이터 분석에서 이용하기
집합 연산을 이용하면 여러 작품의 시청자 통계를 쉽게 낼 수 있습니다.
다크나이트와 아이언맨, 두 작품의 시청자에 관한 네 종류의 통계를 내보겠습니다. 집합 연산자와 len() 함수를 이용하여 다양한 통계를 내는 코드를 완성해 보세요.
matplotlib으로 차트 설정하기
파이썬의 차트 라이브러리인 matploblib에 대해서 더 자세히 알아봅시다. matplotlib 라이브러리는 단순히 차트를 그리는 것뿐만 아니라, 차트에 더 많은 정보를 추가하고 보기 좋게 만드는 다양한 기능을 제공하고 있습니다.
- 한국어 표시를 위해 폰트 설정하기
- 차트의 제목 설정하기
- X축과 Y축에 라벨 표시하기
- 차트의 여백 조정하기
함께 따라하기
작성된 코드는 이전에 나온 영어 단어 모음 분석하기 문제에서 사용했던 코드를 약간 수정한 것입니다.
먼저 코드와 각 줄의 주석을 잘 읽고, 직접 실행해 보세요. 코드를 조금씩 수정하며, 차트의 모양이 변하는 것을 확인해 보세요.
댓글