본문 바로가기

6.Numpy | Pandas | Crawling

5/22(월) IT K-DT(56일차) / 4.DataFrame 활용하기

 

4. DataFrame 활용하기

 

KBO 홈페이지에서 임의의 야구선수의 데이터를 활용

https://www.koreabaseball.com/Record/Player/HitterDetail/Daily.aspx?playerId=62404

 

KBO 홈페이지

KBO, 한국야구위원회, 프로야구, KBO 리그, 퓨처스리그, 프로야구순위, 프로야구 일정

www.koreabaseball.com

 

import pandas as pd

url = ' https://www.koreabaseball.com/Record/Player/HitterDetail/Daily.aspx?playerId=62404' 
df = pd.read_html(url, index_col=0) # index_col=0을 작성 시, 대괄호로 감싸진 채로 가져옴.
df

 

 

예제

AB, H, 2B, 3B, HR 컬럼만 남기고 제거하기.
'루타' 파생변수를 생성하여 열 계산하기. (H:1, 2B:2, 3B:3, HR:4)
4월, 5월의 합계를 제거 후 총합계의 타율을 만들어 matplotlib를 사용하여 라인그래프를 완성하기.

 

df1 = df[0]
df2 = df[1]
dic1 = {'H':1, '2B':2, '3B':3, 'HR':4}

df1 = df1.loc[:25, ['4월', 'AVG1', 'AB', 'H', '2B', '3B', 'HR']]
df2 = df2.loc[:12, ['5월', 'AVG1', 'AB', 'H', '2B', '3B', 'HR']]

df1.rename(columns={'4월':'날짜'}, inplace=True)
df2.rename(columns={'5월':'날짜'}, inplace=True)

df_concat = pd.concat([df1, df2], sort=False)
df_concat.reset_index(drop=True)

 

import matplotlib.pyplot as plt

url = 'https://www.koreabaseball.com/Record/Player/HitterDetail/Daily.aspx?playerId=77532'
df = pd.read_html(url)
df

 

 

df1 = pd.concat(df)
df1

 

df1['루타'] = df1['H']+(df1['2B']*2)+(df1['3B']*3)+(df1['HR']*4)
df1

 

 

df1.plot(x='4월' ,y='AVG1')