Data 4

크롤링 데이터 전처리(naver)

지난 포스팅에서 네이버 스포츠 -> 야구 -> 일정/결과 -> 일자별 경기결과 진입까지 완료했었다. 이번 포스팅은 일자별 경기결과 데이터를 크롤링하여 전처리 후 DB에 적재하는 과정을 다뤄보고자 한다. 크롤링을 하면서 가장 먼저 작업한 것은 크롤링 페이지에 내가 원하는 정보가 있는지와 어느 부분을 가져와야하는지 였다. 분석 화면에 나와있는 데이터는 위 사진과 같았고 데이터는 적당히 있는 것 같았으나 문제가 2개 있었다. 1. '타석' 컬럼이 없다. '타석'컬럼은 규정타석을 계산하기위해 필요한 지표이다. 만약 이 데이터가 없다면 A선수 : 10타석 9타수 5안타, B선수 : 1타석 1타수 1안타 두명의 선수 중 주간 타율 TOP 10을 계산할 때 B선수가 더 높은 순위에 랭크되게 된다. 물론 타율은 B선수..

Data 2023.07.11

일자별 데이터를 주별 데이터로 변환하기

이번 포스팅은 일자별로 적재된 타자, 투수 데이터를 주별 최우수 선수를 가려내기 위한 주별 데이터로 변환해보려고한다. 주별 집계를 하기전 필요한 지표부터 추려봤다. 타자의 경우는 타석, 타수, 득점, 안타, 홈런, 타점, 볼넷, 데드볼, 삼진, 땅볼아웃, 병살타, 타율 등등의 기록을 주차별로 집계할것이고 투수의 경우는 그날의 등판 기록 (ex. 승,패,홀,세) , 이닝, 상대한 타자 수 , 피안타, 실점, 자책점, 볼넷, 데드볼, 삼진 피홈런의 기록을 집계할것이다. 우선 타자, 투수 데이터를 불러와보자 conn = pymysql.connect(host = host, user = user, passwd=passwd, db = db, charset='utf8', port = port,cursorclass=p..

Data 2023.05.12

크롤링 데이터 전처리 (2)

지난 포스팅에서는 크롤링한 데이터를 전처리하여 타자, 투수테이블을 구성했다. 이번 포스팅은 적재된 데이터를 바탕으로 player 정보가 담긴 테이블을 만들어보려고한다. 방법은 sql자체에서 필요컬럼과 중복제거를 하는 방식과 전체 데이터를 가져온 후 데이터프레임에서 전처리하는 방식중 전체 데이터를 가져온 후 데이터 프레임으로 전처리하는 과정으로 진행하려고한다. player 테이블은 다음과 같이 구성했다. create table if not exists player_info( player_id INT auto_increment not null , player_name varchar(10) not null, player_birth DATE, primary Key (player_id) ) 선수 고유의 id값과 ..

Data 2023.05.03

크롤링 데이터 전처리 (1)

이번 포스팅은 statiz에서 크롤링해서 가져온 데이터를 전처리해보려고한다. 크롤링은 urllib.request 모듈을 사용해서 진행했다. selenium을 사용하지 않는 이유는 아래 포스팅에 있다! 2023.04.16 - [Docker] - Docker 환경에서 크롤링하기 Docker 환경에서 크롤링하기 야구 데이터를 지속적으로 얻기 위해서 http://www.statiz.co.kr/main.php 사이트에서 경기 정보를 크롤링하여 데이터를 적재하는 DAG를 작성하는과정중 예상치 못한 문제가 발생했다. 크롤링을 제대로 developer-trainee-j.tistory.com 크롤링을 하기 위해서는 내가 원하는 데이터가 있는 url주로를 알아야한다. 일자별 데이터가 필요했고, 일일 기록이 있는 페이지는 ..

Data 2023.04.25