본문 바로가기
Challange

패스트캠퍼스 환급챌린지 40일차 미션 (3월 11일) : 데이터 분석 Master Class 강의 후기

by @0-0 2024. 3. 11.
반응형

챌린지의 2/3까지 와따!!
40일차

 
벌써 챌린지의 마지막까지 단 20일만을 남겨두고 있다!
이걸 해낼 수 있을까라고 챌린지 도전을 망설이기도 했지만
정말 아파도, 할 일이 너ㅓㅓ무 많아도, 아무것도 하기 싫어도
챌린지만은 해낸 40일이 정말 뿌듯하다!
남은 20일도 강의도 꾸준히 수강하고 블로그를 작성하며
데이터 분석 실력을 쑥쑥 키울 수 있도록 할 것이다🤩🤩🤩
 
 오늘은 파이썬을 이용한 데이터 분석 프로젝트의 첫 시간이었다!
파이썬을 이용한 데이터 분석 프로젝트는 경험이 있는 만큼
강의 내용을 보고 따라하는 것이 아닌 좀 더 얻어가는게 많은 과정으로 만들고 싶었다.
처음의 계획보다 소요되는 시간이 좀 더 길어지더라도 더 가치 있는 시간으로 만들고 싶었다.

물론,, 생각보다 시간이 더 걸리긴 하지만,,
챌린지 동안 이 강의를 끝내고 싶었는데,,그건 안될 것 같다ㅎ

그래서 파이썬 데이터 분석 과정은 고민을 더 많이 할 수 있는 시간으로 만드려고 한다!
분석 전 질문의 경우 엑셀 강의 때처럼 데이터를 관찰한 후
강사님의 질문 이외에도 내가 분석하고 싶은 내용을 추가하였다.
이에 전처리 과정이나 분석을 먼저 진행한 후 강의를 수강하려고 한다!
이번 강의를 통해 내 파이썬 실력과 데이터 분석 실력을
모두 키울 수 있는 계기로 만들고 싶다👍

 
 
 
 
 
 


 

Part 3. PYTHON _ 데이터 분석 프로젝트

 
 
 
 
 
 

04. 파이썬 데이터 분석 프로젝트

 

2. 영화 데이터를 활용한 영화 흥행 요인 분석

 
1) 데이터 둘러보기
 

head()
- movies

data

 
- credits

data2

 

info()

- 50% 이상의 결측치 有 컬럼: movies_homepage

   ·

 

→ 컬럼

< movies 데이터 >

- budget: 영화 예산 (단위: 달러)
- genres: 모든 장르   → dictionary
- homepage: 공식 홈페이지
- id: 각 영화당 unique id
- original_language: 원 언어
- original_title: 원 제목
- overview: 간략한 설명
- popularity: TMDB에서 제공하는 인기도
- production_companies: 모든 제작사    → dictionary
- production_countries: 모든 제작국가    → dictionary
- release_date: 개봉일
- revenue: 흥행 수익 (단위: 달러)
- runtime: 상영 시간
- spoken_language: 사용된 모든 언어
- status: 개봉 여부
- title: 영문 제목
- vote_avearage: TMDB에서 받은 평점 평균
- vote_count: TMDB에서 받은 투표수

<credits 데이터>
- movie_id: 각 영화당
- unique idtitle: 영문 제목
- cast: 모든 출연진   → dictionary
- crew: 모든 제작진   → dictionary

 

 
2) 질문 만들기

 

분석 주제: 영화 흥행 요인 분석

연도별 흥행 수익은?
가장 흥행한 영화 TOP 10은?
흥행에 가장 성공한 감독과 배우는?
장르와 흥행 수익
   - 흥행 수익이 좋은 장르는?
   - 시간의 흐름에 따라 유행하는 장르가 바뀌는가?
   - 월별로 흥행하는 장르가 있는가?
수익과 예산, 투표수, 평점과의 상관관계는?
ROI(예산 대비 수익)가 높으면서 흥행에 성공한 영화의 특징은?

+ 인기도와 흥행 수익의 상관관계

 

 

3) 데이터 전처리

 

① 필요 컬럼 추출

- budget, revenue, popularity, release_date, vote_avearage, vote_count., genres, id, title

- movie_id, cast, crew,

 

② 데이터 결합

id, movie_id를 기준으로 merge

data = pd.merge(movies_df, credits_df, left_on='id', right_on='movie_id').drop('movie_id', axis=1)
data.head()

 

* merge vs join : merge는 컬럼 기준 결합, join은 인덱스 기준 결합

 

 

③ 필요 컬럼 생성

- 연도

- 월

- ROI

- 감독

- 배우

- 메인 장르

 

* ast.literal_eval: 문자열 형태의 자료형을 파이썬 자료형으로 변환

preprocessing

 

 * 함수를 만든 후 apply를 통해 컬럼에 적용

def get_director(x):
  for i in x:
    if i['job'] == 'Director':
      return i['name']

data['director'] = data['crew'].apply(get_director)

 

+ 위 식을 lamda를 사용하여 표현하기

data['director_lambda'] = data['crew'].apply(lambda x: next((i['name'] for i in x if i['job'] == 'Director'), None))

 

next() 함수는 이터레이터에서 다음 아이템을 가져오는 함수.

여기서는 조건을 만족하는 첫 번째 요소만 필요하기 때문에 사용됨

만약 조건을 만족하는 요소가 없다면, None을 반환

 

 

 


 
 

 
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.

 
 
 
 
:: https://bit.ly/48sS29N

 

패스트캠퍼스 [직장인 실무교육]

프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.

fastcampus.co.kr

 

반응형