[ํฌ๋กค๋ง] BeautifulSoup์ ํ์ฉํ ๋ค์ด๋ฒ ์ํ ํ์ ํฌ๋กค๋ง
๋ค์ด๋ฒ ์ํ ํ์ - https://movie.naver.com/movie/sdb/rank/rmovie.naver?sel=cur&tg=0&date=20220323 ๋ญํน : ๋ค์ด๋ฒ ์ํ ์ํ, ์ํ์ธ, ์๋งค, ๋ฐ์ค์คํผ์ค ๋ญํน ์ ๋ณด ์ ๊ณต movie.naver.com - ๋ค์ด๋ฒ ์ํ์์..
xod22.tistory.com
์ด๋ฒ ํฌ์คํ ์ ํฌ๋กค๋ง ํด์จ ๋ค์ด๋ฒ ์ํ ํ์ ๋ฐ์ดํฐ๋ฅผ preprocessing ํด๋ณด๋ ค๊ณ ํฉ๋๋ค!
Data Preprocessing
1. ๋ฐ์ดํฐ ๋ถ๋ฌ์ค๊ธฐ
import numpy as np
import pandas as pd
#index_col=0 : ์ธ๋ฑ์ค๋ฅผ ๋ถ๋ฌ์ค์ง ์์
movie=pd.read_csv("naver_movie_points_2022.csv", index_col=0)
movie.tail()
2. ํ์ ํฉ์ฐ ํด๋ณด๊ธฐ
- ์ํ ์ด๋ฆ์ ์ธ๋ฑ์ค, ์ ์ ํฉ์ฐ ํ ๋ด๋ฆผ์ฐจ์ 10๊ฐ๋ฅผ ์ถ๋ ฅ
movie_unique=pd.pivot_table(movie, index=['name'], aggfunc=np.sum)
movie_unique.sort_values('point', ascending=False).head(10)
3. DataFrame Query๋ก ๊ฒ์
-์ํ ์ ๋ชฉ์ด ์ฝ2๊ฒ๋์ธ ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ํด๋ณด์์ต๋๋น
movie.query('name==["์ฝ2๊ฒ๋"]')
4. ๋ ์ง๋ณ ์ํ ํ์ ๋ณํ ๊ทธ๋ฆฌ๊ธฐ
-์ฑ2๊ฒ๋์ ํ์ ๋ณํ ํ์ธ
import matplotlib.pyplot as plt
plt.figure(figsize=(24,8))
plt.plot(movie.query('name==["์ฝ2๊ฒ๋"]')['date'],
movie.query('name==["์ฝ2๊ฒ๋"]')['point'])
plt.legend(labels=['point'])
#x์ถ์ ๊ธธ์ด๊ฐ ๋๋ฌด ๊ธธ์ด์ rotation์ 45๋ก ํด์ค
plt.xticks(rotation=45)
plt.grid()
plt.show()
5. ์ํ ์ ๋ฆฌ
- ํฌ๋กค๋งํ ์ํ๋ฅผ ์ปฌ๋ผ์ผ๋ก ํ๊ฒ pivotํจ
movie_pivot=movie.pivot_table(movie, index='date', columns=['name'])
movie_pivot.columns=movie_pivot.columns.droplevel([0])
movie_pivot.tail()
6. ๋ณด๊ณ ์ถ์ ์ํ ํ์ ์๊ฐํ
movie_pivot.columns
targer_col=['๋ง๋ฏธ', '์ฝ2๊ฒ๋', '๋']
plt.figure(figsize=(12,8))
plt.plot(movie_pivot[targer_col])
plt.legend(targer_col, loc='best')
plt.tick_params(bottom=False, labelbottom=False)
plt.show()
- ๋ณด๊ณ ์ถ์ ์ํ์ ํ์ ๋ง ๊ณจ๋ผ์ ๋น๊ตํด๋ณผ ์ ์์..!
- ์ค๊ฐ์ ์ ์ด ๋๊ธด ๊ฒ์ ํ์ ๋ฐ์ดํฐ๊ฐ ์๋๊ฒ