우당탕탕 개발공부

파이썬 데이터 분석 - 데이터 분석 [ DACON 영화 관객 수 ② ] 본문

✍ Study/데이터 분석

파이썬 데이터 분석 - 데이터 분석 [ DACON 영화 관객 수 ② ]

냥냥서 2023. 1. 26. 16:23
 

파이썬 데이터 분석 - 데이터 분석 [ DACON 영화 관객 수 ①]

dacon에서 실시하는 영화 관객수 예측 경진대회 데이터를 사용해 데이터 분석을 했다. 영화 관객수 예측 경진대회 - DACON 분석시각화 대회 코드 공유 게시물은 내용 확인 후 좋아요(투표) 가능합니

rlory.tistory.com


가설1. 12월에 개봉하는 영화 장르는 멜로/로맨스 장르가 높을 것 이다.

먼저 12월달만 추출해야 하므로 query( )문을 사용해서 movie_12변수에 저장한다.

그리고 장르별로 갯수를 추출한다.

movie_12 = movie_train.query('month==12')
movie_12_genre = movie_12['genre'].value_counts()
movie_12_genre

12월에 개봉한 영화의 장르는 드라마 > 다큐멘터리 > 멜로/로맨스 순으로 비중이 높은 것을 알 수 있다.

 

plt.figure(figsize=(10,8))
labels = ['드라마','다큐멘터리','멜로/로맨스','코미디','느와르','애니메이션','미스터리','SF','공포']
explode = [0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05]
plt.title('장르 별 비율', fontsize=15)
plt.pie(movie_12_genre, labels=labels, autopct='%1.1f%%', startangle=270, explode=explode, textprops={'size':12});

드라마 44.9%,  다큐멘터리 20.4%,   멜로/로맨스 10.2% ... 등 비율을 알 수 있다.

드라마의 비율이 내가 예측했던 멜로/로맨스보다 4배 이상 높을 것을 알 수 있으며, 12월에는 '드라마'같은 장르의 영화를 개봉하면 사람들이 많이 관람할 것이라는 것또한 예측할 수 있다.

 

 

가설2. 관객들이 많이 보기 때문에 영화를 많이 개봉하는 것일까?

말이 좀 이상하지만... 

1. 제일 많이 영화를 배출한 감독은 누구일까?

2. 관객들이 많이 보는 것 (관객수)과 영화 수가 관계가 있을까?

 

 

가장 많이 영화를 배출한 감독 알아보기

movie_train['director'].value_counts()

'홍상수' 감독이 7편으로 가장 많이 영화를 배출한 것을 알 수 있다.

감독이 개봉한 영화를 살펴보면

 

장르는 모두 '드라마'이며, 관람등급은 '청소년 관람불가'영화들 인 것을 알 수 있다.

 

영화가 개봉한 연도, 영화 제목, 관객수를 알기 위해 query( )문을 사용한다.

mv = movie_train.query('director == "홍상수"')[['year','title','box_off_num']].sort_values(by='year')
mv

2010년에는 2편 다음 연도부터는 1편식 영화를 개봉한 하였으며, 관객 수도 2015년에 정점을 찍은 것을 알 수 있다.

mv.describe()

홍상수 감독의 영화는 평균적으로 약 5만명정도의 관객이 관람한 것을 알 수 있다.

 

한눈에 알아보기 쉽게하기 위해 시각화를 해주었다.

#bar 색상 지정 위해
palette = sns.color_palette('cool', 10)

sns.barplot(data=mv, x='year', y='box_off_num', palette=palette );

2010년부터 2015년까지 꾸준히 영화를 개봉하지만 관객수에 따라서 개봉한 것은 아닌 것 같다.

그렇다고 하기엔 2012년에는 3만명이었는데, 다음해인 2013년에는 약7만명 (약 2배)의 관객수를 얻었기 때문이다.

 

 

 

 

주연배우와 관객수 산포도
plt.figure(figsize=(8,5))
plt.title('주연배우수와 관객수 산포도', fontsize = 13)
sns.scatterplot( data=movie_train, x='num_actor', y='box_off_num', color='royalblue');