28Python库分析科比生涯数据

唐宇迪《python数据分析与机器学习实战》学习笔记
28Python库分析科比生涯数据
基本的一个操作流程,没有多深入

一、数据预处理

先来看一下数据,每个样本有25个属性,包括:
A:action_type(用什么方式投的篮)
B:combined_shot_type(结合什么方式投篮)
C:game_event_id(游戏事件ID)
D:game_id(游戏ID)
E:la(投篮的经度)
F:loc_x (投篮的x坐标)
G:loc_y(投篮的y坐标)
H:lon(投篮的纬度)
I:minutes_remaining(离比赛结束还有多少分钟)
J:period(第几场)
K:playoffs(是不是季后赛)
L:season(赛季)
M:seconds_remaining(离比赛结束还有多少秒)
N:shot_distance(投篮离篮筐的的距离)
O:shot_made_flag (是不是进球了)这里就是label
P:shot_type(2分球还是3分球区域)
Q:shot_zone_area(投篮区域表示方式一)
R:shot_zone_basic(投篮区域的表示方式二)
S:shot_zone_range(投篮区域的表示方式三)
T:team_id(队伍ID)
U:team_name(队伍名字)
V:game_date(比赛时间)
W:matchup(比赛双方队伍)
X:opponent(自己所在队伍名字)
Y:shot_id(镜头ID)
在这里插入图片描述在这里插入图片描述
label为O列:0没进,1进了,还有些缺失值这里需要去除。

导入模块

import numpy as np 
import pandas as pd 
import matplotlib.pyplot as plt
%matplotlib inline
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import KFold

导入数据

filename= "data.csv"
raw = pd.read_csv(filename)
print (raw.shape)

(30697, 25)

缺失值处理

kobe =  raw[pd.notnull(raw['shot_made_flag'])]#notnull如果不是空值就保留
print (kobe.shape)

(25697, 25)

特征样本点分布观察

alpha = 0.02
plt.figure(figsize=(10,10))

# loc_x 和 loc_y,投篮位置
plt.subplot(121)
plt.scatter(kobe.loc_x, kobe.loc_y, color='R', alpha=alpha)
plt.title('loc_x and loc_y')

# lat 和 lon,经度纬度
plt.subplot(122)
plt.scatter(kobe.lon, kobe.lat, color='B', alpha=alpha)
plt.title('lat and lon')

在这里插入图片描述
发现两个特征表达的投篮位置都一样,所以接下来可以任意一个。
这里保留前者xy,为了方便表达将其转换为极坐标

raw['dist'] = np.sqrt(raw['loc_x']**2 + raw['loc_y']**2)#距离计算

loc_x_zero = raw['loc_x'] == 0 #角度计算
#print (loc_x_zero)
raw['angle'] = np.array([0]*len(raw))
raw['angle'][~loc_x_zero] = np.arctan(raw['loc_y'][~loc_x_zero] / raw['loc_x'][~loc_x_zero])
raw['angle'][loc_x_zero] = np.pi / 2 

还有多少分钟,多少秒结束,这两列也可以结合在一起:

raw['remaining_time'] = raw['minutes_remaining'] * 60 + raw['seconds_remaining']

快速观察数据:有些特征包含的属性太多,这里可以通过以下操作看一下包括哪些:</

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
比布莱恩特是美国职业篮球运动员,他的数据生涯可以通过使用Python进行分析Python是一种被广泛应用于数据分析的编程语言,它可以帮助我们处理和展示比的篮球数据。 首先,我们可以使用Python数据处理(例如Pandas)来读取和清洗比的比赛数据。这些数据通常是以CSV或Excel文件格式存储。我们可以使用Pandas将数据加载到数据帧(DataFrame)中,并进行一些基本的数据清洗,例如去除重复值或缺失值。 接下来,我们可以使用Python进行一些基本的数据分析,例如计算比在不同比赛中的得分、助攻和篮板数据。我们可以使用Matplotlib这样的可视化来绘制图表,从而更好地理解和展示这些数据。 另外,我们可以根据不同的条件进行数据筛选和分组。例如,我们可以根据不同的对手或赛季将数据分组,并计算比在这些不同情况下的平均得分或胜率。这可以帮助我们更好地理解比在不同场合的表现。 此外,我们还可以利用Python的统计分析(例如SciPy或StatsModels)来进行更复杂的数据分析。这包括使用回归模型来分析比与其他因素(例如比赛时间、得分、队友等)之间的关系。 最后,我们可以使用Python的机器学习(例如Scikit-learn)来构建预测模型,以预测比在未来比赛中的表现。这可以通过训练监督学习模型,使用历史数据进行预测,然后根据模型的输出进行分析和讨论。 总而言之,使用Python进行数据生涯分析可以帮助我们更好地理解他在篮球比赛中的表现,并提供一些有趣的见解和洞察力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值