관리 메뉴

RUBY

[WebData][Movie] 3. 영화 평점 데이터 정리 본문

데이터 분석/EDA_웹크롤링_파이썬프로그래밍

[WebData][Movie] 3. 영화 평점 데이터 정리

ruby-jieun 2023. 2. 5. 23:09

 

 

 

웹 데이터 수집하고 정리하기
네이버 영화 평점 사이트 분석
3. 영화 평점 데이터 정리

 


 

 

 

 - 영화 이름으로 인덱스를 잡습니다..

 - 점수의 합산을 구합니다.

 - 100일 간 네이버 영화 평점 합산 기준 베스트&워스트 10 선정

 

import numpy as np 
import pandas as pd
movie = pd.read_csv("../data/03. naver_movie_data.csv", index_col=0)
movie.tail()

 

 

 

1. pivot table 

 

 또 뜨는 경고창...

 

 불편하네요..

 

 

가볍게 보내버립니다.

import warnings
warnings.simplefilter(action='ignore', category=FutureWarning)
movie_unique = pd.pivot_table(data=movie, index="name", aggfunc=np.sum)
movie_unique

 

 

2. 점수의 합산을 내림차순으로 보여준다.

movie_best = movie_unique.sort_values(by="point", ascending=False)
movie_best.head()

 

 

 

3. DataFrame의 검색 명령으로 qeury 명령도 있다.

tmp = movie.query("name == ['라라랜드']")
tmp

 

 

 

 

4. 시각화를 진행해보자

import matplotlib.pyplot as plt 
from matplotlib import rc 

rc("font", family="Malgun Gothic ")
%matplotlib inline 

get_ipython().run_line_magic("matplotlib", "inline")

plt.figure(figsize=(20, 8))
plt.plot(tmp["date"], tmp["point"])
plt.title("날짜별 평점")
plt.xlabel("날짜")
plt.ylabel("평점")
plt.xticks(rotation="vertical")
plt.legend(labels=["평점 추이"], loc="best")
plt.grid(True)
plt.show()

 

 

 

5. 상위 10개 영화 불러오기

movie_best.head(10)

 

 

 

6. 하위 10개 영화 불러오기

movie_best.tail(10)

 

 

 

7. 100일간 영화를 모두 정리하자

movie_pivot = pd.pivot_table(data=movie, index="date", columns="name", values="point")
movie_pivot.head()

 

 

 

8. 엑셀로 저장

movie_pivot.to_excel("../data/03. movie_pivot.xlsx")

 

 

 

10. matplotlib 한글 설정

import platform
import seaborn as sns 
from matplotlib import font_manager, rc 

path = "C:/Windows/Fonts/malgun.ttf"

if platform.system() == "Darwin":
    rc("font", family="Malgun Gothic")
elif platform.system() == "Windows":
    font_name = font_manager.FontProperties(fname=path).get_name()
    rc("font", family=font_name)
else:
    print("Unknown system. sorry")

 

 

 

 

11. 영화 몇 개만 추려서 그래프로 확인해보자

target_col = ["인생은 아름다워", "동감", "라라랜드", "비긴 어게인", "겨울왕국"]
plt.figure(figsize=(20, 8))
plt.title("날짜별 평점")
plt.xlabel("날짜")
plt.ylabel("평점")
plt.xticks(rotation="vertical")
plt.tick_params(bottom="off", labelbottom="off")
plt.plot(movie_pivot[target_col])
plt.legend(target_col, loc="best")
plt.grid(True)
plt.show()
Comments