23.02.02

박무연·2023년 2월 2일
0

🟣EDA

목록 보기
4/9
post-thumbnail

1. 네이버 영화 평점 사이트 분석

- 날짜에 따라 페이지가 변한다

- 페이지 정보를 가져와보자

import pandas as pd
from urllib.request import request
from bs4 import BeautifulSoup

url = ~~
response = request(url)
soup = BeautifulSoup(response,'html.parser')

- 각 정보 위치 파악

  • 제목확인
soup.find_all('div',class_='tit5').a
  • 평점 확인
soup.find_all('td','point').text
  • 제목과 평점의 리스트 길이가 같은지 확인해본다

- 리스트 반복문을 활용하여 데이터 넣기

end = len(soup.select('td.point'))
# 제목넣기
move_name = [soup.find_all('div',class_='tit5')[n].a.string for n in range(0,end)]

#평점넣기
movie_point = [soup.find_all('td','point')[n].text for n in range(0,end)]

2. 자동화를 위한 코드

- 날짜 생성하기

date = pd.date_range('시작날짜',period='원하는기간', freq='주기')

- 원하는 형태로 바꾸기

date.strftime(%Y%m%d)
# 기억해두자!!

- 문자열 format ## 기억하자!!!!

  • 날짜가 달라지기 때문에 문자열 format으로 변하면서 데이터를 가져온다
url = ~~~~~~~{date}

for today in date:
	url = ~~~~~~~{date}
    response = request(url.format(date = today.strftime(%Y%m%d))
	soup = BeautifulSoup(response, 'html.parser')
    
    # 아래는 똑같다~ 
    # 반복을 돌면서 정보 가져오기~

3. 영화 평점 데이터 정리

- pivot table을 활용해 정리

pd.pivot_table(data = df, index = name, aggfunc =np.sum)

- query

  • name으로 가져오기
tmp = df.query("column명 == ['가져올 데이터']")

4. 시각화

- 처음 보는 것만 정리

- 세로로 주기

plt.xticks(rotation ='vertical')   # 세로로 주기

- legend 이름주기

plt.legend(labels=['평점추이'])

# 리스트로 만들어 아래처럼 해도 된다!
plt.legend(target_col)

- 아랫부분 구분

plt.tick_params(bottom='off', labelbottom='off')
profile
Easy day!

0개의 댓글