科比职业生涯命中率分析
数据集来自于:https://www.kaggle.com
本文章探索的问题:
- 总命中率以及每场比赛的命中率
- 各节命中率及各赛季命中率
- 2分球和3分球命中率
- 各个位置的命中率
- 主客场命中率
- 得分方式命中率
- 得分方式的使用概率
- 各个位置的出手概率
导入包
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
# 解决中文乱码问题
plt.rcParams['font.sans-serif']='SimHei'
plt.rcParams['axes.unicode_minus']=False
%config InlineBackend.figure_format='svg'
读取数据
# 读取数据
data = pd.read_csv('data.csv')
# 预览数据
data.head()
data.info()
- shot_made_flag字段存在缺失,删除
- game_event_id、lat、lon、team_id、team_name、seconds_remaining、minutes_remaining、matchup无用删除
预处理
- 删除存在缺失值的样本
- 删除无用字段
- 增加主客场字段
kobe = data.drop(['game_event_id', 'lat', 'lon', 'team_id', 'team_name', 'seconds_remaining', 'minutes_remaining', 'matchup'], axis=1)
# 0代表客场,1代表主场
kobe['home'] = data['matchup'].apply(lambda x: 0 if x[4]=='@' else 1)
kobe['period_seconds_remaining'] = 60 * data['minutes_remaining'] + data['seconds_remaining']
kobe.dropna(inplace=True)
kobe['game_date'] = kobe.game_date.apply(lambda x: pd.to_datetime(x))