记录一下对kobe职业生涯数据的数据预处理过程,对kobe表示沉痛哀悼,永远的神…

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# import data
filename= "data.csv"
raw = pd.read_csv(filename)
print (raw.shape)
raw.head()
#raw.tail()

数据集里面有缺失值,这里用的方法是直接将此行删除

# 5000 for test 去掉5000个缺失值
kobe =  raw[pd.notnull(raw['shot_made_flag'])] #保留值不为NaN的列  按shot_made_flag选#plt.subplot(211) first is raw second Column
alpha = 0.03  #透明程度
plt.figure(figsize=(10,10)) #先画一个10*10的块# loc_x and loc_y
plt.subplot(121) #1行2列第1个
plt.scatter(kobe.loc_x, kobe.loc_y, color='R', alpha=alpha)
plt.title('loc_x and loc_y')# lat and lon
plt.subplot(122) #1行2列第2个
plt.scatter(kobe.lon, kobe.lat, color='B', alpha=alpha)
plt.title('lat and lon')

x、y直角坐标转化为极坐标

#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'] #将剩余分钟化成秒加上#将列中不同的打出来
print(kobe.action_type.unique())
print(kobe.combined_shot_type.unique())
print(kobe.shot_type.unique())#将不同类别出现的次数打出来
print(kobe.shot_type.value_counts())

[‘Jump Shot’ ‘Driving Dunk Shot’ ‘Layup Shot’ ‘Running Jump Shot’
‘Reverse Dunk Shot’ ‘Slam Dunk Shot’ ‘Driving Layup Shot’
‘Turnaround Jump Shot’ ‘Reverse Layup Shot’ ‘Tip Shot’
‘Running Hook Shot’ ‘Alley Oop Dunk Shot’ ‘Dunk Shot’
‘Alley Oop Layup shot’ ‘Running Dunk Shot’ ‘Driving Finger Roll Shot’
‘Running Layup Shot’ ‘Finger Roll Shot’ ‘Fadeaway Jump Shot’
‘Follow Up Dunk Shot’ ‘Hook Shot’ ‘Turnaround Hook Shot’ ‘Jump Hook Shot’
‘Running Finger Roll Shot’ ‘Jump Bank Shot’ ‘Turnaround Finger Roll Shot’
‘Hook Bank Shot’ ‘Driving Hook Shot’ ‘Running Tip Shot’
‘Running Reverse Layup Shot’ ‘Driving Finger Roll Layup Shot’
‘Fadeaway Bank shot’ ‘Pullup Jump shot’ ‘Finger Roll Layup Shot’
‘Turnaround Fadeaway shot’ ‘Driving Reverse Layup Shot’
‘Driving Slam Dunk Shot’ ‘Step Back Jump shot’ ‘Turnaround Bank shot’
‘Reverse Slam Dunk Shot’ ‘Floating Jump shot’ ‘Putback Slam Dunk Shot’
‘Running Bank shot’ ‘Driving Bank shot’ ‘Driving Jump shot’
‘Putback Layup Shot’ ‘Putback Dunk Shot’ ‘Running Finger Roll Layup Shot’
‘Pullup Bank shot’ ‘Running Slam Dunk Shot’ ‘Cutting Layup Shot’
‘Driving Floating Jump Shot’ ‘Running Pull-Up Jump Shot’ ‘Tip Layup Shot’
‘Driving Floating Bank Jump Shot’]
[‘Jump Shot’ ‘Dunk’ ‘Layup’ ‘Tip Shot’ ‘Hook Shot’ ‘Bank Shot’]
[‘2PT Field Goal’ ‘3PT Field Goal’]
2PT Field Goal 20285
3PT Field Goal 5412
Name: shot_type, dtype: int64

很明显数据集里面像时间2000-01这种数据python不能直接用,需要先将它转化成整形的数据

#将带有特殊字符的数据化成整形的数据
raw['season'] = raw['season'].apply(lambda x: int(x.split('-')[1]) ) #apply:对某一列用..函数
plt.figure(figsize=(5,5))plt.scatter(raw.dist, raw.shot_distance, color='blue')
plt.title('dist and shot_distance')

发现是呈强正相关的两个指标,只需选取其中一个分析即可

gs = kobe.groupby('shot_zone_area')
print (kobe['shot_zone_area'].value_counts())
print (len(gs))

Center( C) 11289
Right Side Center(RC) 3981
Right Side( R) 3859
Left Side Center(LC) 3364
Left Side(L) 3132
Back Court(BC) 72
Name: shot_zone_area, dtype: int64
6

一些列对分析没有用,要删掉

#drop掉一些对结果没用的列
drops = ['shot_id', 'team_id', 'team_name', 'shot_zone_area', 'shot_zone_range', 'shot_zone_basic', \'matchup', 'lon', 'lat', 'seconds_remaining', 'minutes_remaining', \'shot_distance', 'loc_x', 'loc_y', 'game_event_id', 'game_id', 'game_date']
for drop in drops:raw = raw.drop(drop, 1)
print (raw['combined_shot_type'].value_counts())
#机器不认识string型数据,要利用one hot编码转转换
#用get_dummies完成,将不同属性按列排
#prefix:前缀,系统会自动加上后缀 _(名字)
pd.get_dummies(raw['combined_shot_type'], prefix='combined_shot_type')[0:2]

categorical_vars = ['action_type', 'combined_shot_type', 'shot_type', 'opponent', 'period', 'season']
for var in categorical_vars:raw = pd.concat([raw, pd.get_dummies(raw[var], prefix=var)], 1)  #将数据 列(1)组到一起,组成一个新的dataframeraw = raw.drop(var, 1)

数据预处理完成

kobe生涯数据 数据预处理相关推荐

  1. 时间序列数据的预处理

    来源:Deephub Imba 本文约2600字,建议阅读5分钟 在本文中,我们将看到在深入研究数据建模部分之前应执行的常见时间序列预处理步骤和与时间序列数据相关的常见问题. 时间序列数据随处可见,要 ...

  2. 医学影像:静息态fmri数据的预处理

    文章目录 引言 静息态fmri数据的预处理 数据预处理的理论部分 静息态数据预处理的一般步骤(参考) 常用的工具 数据预处理的实践部分 引言 本文主要详细介绍了静息态fmri数据的预处理,什么是静息态 ...

  3. 数据仓库之数据及预处理

    数据仓库之数据及预处理 在写这之前,让我们先了解一下数据仓库以及数据预处理的概念. - 数据仓库的定义: 数据仓库是面向主题的.集成的.相对稳定的.反映历史变化的数据集合,用于支持管理决策.** 数据 ...

  4. 大型医院影像PACS系统三维重建技术(获取数据、预处理、配准、重建和可视化)

    PACS(Picture Archiving and Communication System)系统作为医学图像的存储和传输平台,为医生和患者提供了便捷高效的诊疗服务支持.近年来,三维重建技术在PAC ...

  5. MODIS 数据产品预处理

    MODIS 数据产品预处理 1  MCTK重投影 第一步:安装ENVI的MCTK扩展工具 解压压缩包,将其中的mctk.sav与modis_products.scsv文件复制到如图所示,相应的ENVI ...

  6. 基于SPM12对fMRI数据进行预处理及其批处理

    对fMRI数据进行预处理 博主最近在做fmri数据的预处理,原理并不是很难,但是过程中很多细节容易被忽略导致失败,特此记录一些细节以供参考! 一.数据说明 1.原始数据(格式:.dcm) (1)功能像 ...

  7. 09-使用snappy对Sentinel-1 GRDH数据进行预处理

    09-使用snappy对Sentinel-1数据进行预处理 前言 准备工作 源数据 snappy包重要类和其属性.方法 数据的读和写操作 Product类的属性和方法使用简介 SNAP Engine ...

  8. 3-对链家二手房数据进行预处理,以及利用CNN进行多分类操作

    使用:26-爬取链家二手房成交的房产信息[简单] (https://my.oschina.net/pansy0425/blog/3031621),对爬取到的数据进行简单的清洗,去噪,进行数据预处理,以 ...

  9. 计算机视觉:图片数据的预处理

    本文重点 图片数据是计算机视觉处理的核心,一般的图片数据并不能直接放到神经网络中,而是应该使用一些数据与处理的方式来解决,这个操作我们称为图片数据的预处理. 图像缩放 图像缩放是指将图像的尺寸调整为所 ...

  10. 对RCS数据进行预处理

    提取RCS数据中的xyzrgb信息 首先在recap中把rcs文件导出为pts文件,pts类似于txt,然后读取. 去掉了pts文件中第一行,即数据大小这行,因为需要丢入深度学习框架中,需要对数据进行 ...

最新文章

  1. 解决0X000000该内存不能为read 的方法
  2. BIEE物理业务层编辑之后发布路径
  3. FragmentTabHost + Fragment 使用小记
  4. 分布式ID-数据库多主模式
  5. 训练softmax分类器实例_CS224N NLP with Deep Learning(四):Window分类器与神经网络
  6. class 命名规范
  7. [转载] 晓说——第9期:多如牛毛严酷无比的美国那些法
  8. Docker从入门到实战(四)
  9. “dedeCMS 提示信息!”跳转页,如何修改文字?
  10. Pandas 数据处理三板斧,你会几板?
  11. 好用的markdown编辑工具Ulysses 25 for Mac
  12. 阿里矢量图标库 - Font class 方式使用说明
  13. 基于matlab的车牌识别系统设计
  14. Duanxx的技术问题:word界面显示模糊
  15. 2018年工商银行软件开发中心面试经历
  16. win10安装VS2008失败解决方案
  17. 爬虫爬取电影天堂电影链接
  18. 更换NVMe SSD不用重装系统,Windows系统迁移
  19. Kerberos双跳变通办法
  20. Android仿微博/QQ空间滑动自动播放视频功能

热门文章

  1. 净利环比缩水过半,Salesforce龙头地位不保?
  2. 神经网络系统技术是什么,神经网络系统技术应用
  3. OS_PV操作_5.行人与机动车过路口问题
  4. SQL Server 深入解析索引存储(上)
  5. 法规标准-UN R157标准解读
  6. !! MACD战法总结
  7. 封基表现继续好于大盘
  8. 新版PHP云进销存系统ERP销售库存仓库员工管理系统源码
  9. 【游戏设计模式】之二 论撤消重做、回放系统的实现:命令模式
  10. MATLAB绘图(特殊二维)