#1-5 경마 데이터 수집하기 - 경주 결과를 표 형태로 저장하기
목차
그럼, 이제 경기 결과를 표형태로 저장해 보겠습니다.
표형태로 저장하기에 앞서서, pandas라는 패키지를 알아두어야 합니다.
pandas는 데이터 처리 및 분석을 용이하게 해 주는 패키지로,
이 패키지를 이용하여 dataframe이라는 형태로 저장하면 우리가 흔히 알고 있는 DB형태로 저장해 줍니다.
(DB 형태 예시)
위의 그림에서처럼 위에는 칼럼 정보를 그 밑으로 쭈~욱 데이터가 저장되어 있는 것을 알고 있습니다.
저희는 이러한 형태인 DataFrame형태로 저장할 것입니다.
바로 앞 글에서처럼 긁어오는 영역을 확인한 후에, 아래와 같이 긁어 옵니다.
url="http://race.kra.co.kr/raceScore/ScoretableDetailList.do?meet=1&realRcDate=20170723&realRcNo=1"
result = urlopen(url)
html = result.read()
soup = BeautifulSoup(html, 'html.parser')
temp = soup.find_all('div',attrs={'class':'tableType2'})
table = temp[0].find('table')
여기까지는 앞의 글과 똑같고요. 이제 table에 있는 값을 dataframe형태로 저장하면 됩니다.
p=parser.make2d(table)
df=pd.DataFrame(p[1:],columns=p[0])
d0=df.rename(columns = {'마번':'번호'})
parser.make2d함수를 이용하면, table값이 한 줄씩 저장됩니다. 여러 줄의 list형태로 저장되는데요.
그 다음 코드가 dataframe형태로 저장하는 부분입니다. 이것을 실행하기 전에 먼저 import pandas as pd 라고 실행하셔서
pandas 패키지를 import 해야 합니다.
그 다음에는 p[1:] 이라고 지정하여 두 번째 줄부터 데이터로 저장하고 p[0]은 칼럼 값으로 지정하는 부분입니다.
그 다음 rename을 통해 일부 칼럼값을 수정해 줍니다.
최종적으로 저장된 형태는 아래와 같습니다.
In[10]: d0
Out[18]:
순위 번호 마명 산지 성별 연령 중량 레이팅 기수명 조교사명 마주명 마주복색 도착차 마체중 \
0 1 3 이글스카이 한 수 2세 54.5 임기원 박윤규 이방훈 481(-10)
1 2 8 달려라파챠이 한 거 4세 55 (-1)하정훈 박희철 한영석 목 428(-1)
2 3 7 천녹 한 암 3세 54 신지 최봉주 조금제 ½ 450(-17)
3 4 12 큐피드닥터 한 암 3세 54 신형철 유재길 서순배 ♠ ¾ 470(10)
4 5 2 소중한성불 한 암 2세 52.5 조재로 배휴준 최동천 ♠ ¾ 450(0)
5 6 10 운해질주 한 수 3세 56 얀 정호익 박정재 ♠ 4 482(0)
6 7 5 무적의순간 한 수 2세 53.5 (-1)김태훈 지용철 금악목장 ♠ 2½ 484(12)
.............
줄이 좀 안 맞기는 하지만, DB 형태로 잘 저장되어 있는 것을 알 수 있습니다.
이렇게 하나의 경기를 가져오는 방법을 알아 보았습니다.
다음에는 이제 몇 년치의 데이터를 긁어와서 분석을 하기 위한 데이터셋을 만들어 보도록 하겠습니다. url의 입력 파라미터를 조정하여, 다수의 경기결과를 크롤링하여 DB로 만들고자 한다. 자세한 내용이 궁금하다면, 아래 포스팅을 참조해보세요.
( 참조: #1-6 경마 데이터 수집하기 - SQLite라는 DB로 저장하기 )
감사합니다.
'Python > 파이썬 경마 분석' 카테고리의 다른 글
#2-7 decision tree 알고리즘 사용하기 (0) | 2017.10.10 |
---|---|
#2-6 KNN 군집화 알고리즘 사용하기 (질병 정보 분류하기) - 파이썬, pandas, sklearn (6) | 2017.08.29 |
모델링 참고자료 (0) | 2017.08.28 |
#1-4 경마 데이터 수집하기 - 경주 결과 웹크롤링 하기 (6) | 2017.08.26 |
#1-6 경마 데이터 수집하기 - SQLite라는 DB로 저장하기 (0) | 2017.08.26 |
2017년 8월 11일 렛츠런파크 부산 5번째 경주 (0) | 2017.08.23 |
outlier(이상치, 아웃라이어) 제거하기 (0) | 2017.08.22 |
#1-2 경마 데이터 수집하기 - 렛츠런 파크 사이트 보기 (0) | 2017.08.11 |