pandas清洗Kobe数据
清洗Kobe数据
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.cm as cm
import numpy as npraw = pd.read_csv('.\data\kobe_data.csv')
print(raw.shape)
kobe = raw[pd.notnull(raw['shot_made_flag'])]
print(kobe.shape)alpha = 0.01#透明度
plt.figure(figsize=(10,10))plt.subplot(121)
plt.scatter(kobe.loc_x,kobe.loc_y,c='blue',alpha=alpha)
plt.title('loc_x and loc_y')plt.subplot(122)
plt.scatter(kobe.lon,kobe.lat,c='green',alpha=alpha)
plt.title('lot and lat')#计算距离
raw['dist'] = np.sqrt(raw['loc_x']**2+raw['loc_y']**2)
#计算角度
loc_x_zero = raw['loc_x'] == 0
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/2raw['remaining_time'] = raw['minutes_remaining']*60+raw['seconds_remaining']print(kobe.action_type.unique())
print(kobe.combined_shot_type.value_counts())
print(kobe.shot_type.unique())
print(kobe.season.unique())
#赛季格式转换
raw['season'] = raw['season'].apply(lambda x: int(x.split('-')[1]))
print(raw.season.unique())mat = pd.DataFrame({'matchup':kobe.matchup,'opponent':kobe.opponent})plt.figure(figsize=(5,5))
plt.scatter(raw.dist,raw.shot_distance,c='b')
plt.title('dis and shot_distance')gs = kobe.groupby('shot_zone_area')
print(kobe['shot_zone_area'].value_counts())
print(len(gs))plt.figure(figsize=(20,10))
def scatter_plot_by_category(feat):alpha = 0.02gs = kobe.groupby(feat)cs = cm.rainbow(np.linspace(0,1,len(gs)))for g,c in zip(gs,cs):plt.scatter(g[1].loc_x, g[1].loc_y, color=c,alpha=alpha)plt.subplot(131)
scatter_plot_by_category('shot_zone_basic')
plt.title('shot_zone_basic')plt.subplot(132)
scatter_plot_by_category('shot_zone_area')
plt.title('shot_zone_basic')plt.subplot(133)
scatter_plot_by_category('shot_zone_range')
plt.title('shot_zone_basic')drops = ['shot_id','team_id', 'team_name','shot_zone_area', 'shot_zone_basic', 'shot_zone_range', 'lat','lon','matchup','shot_distance', 'minutes_remaining','seconds_remaining', 'loc_x', 'loc_y','game_date','game_id', 'game_event_id']
for i in drops:raw = raw.drop(i,1)print(raw.combined_shot_type.value_counts())
print(pd.get_dummies(raw.combined_shot_type,prefix='combined_shot_type')[0:2])categorical = ['action_type','combined_shot_type','shot_type','opponent','period','season']
for var in categorical:raw = pd.concat([raw, pd.get_dummies(raw[var],prefix=var)],1)raw = raw.drop(var,1)train_kobe = raw[pd.notnull(raw['shot_made_flag'])]
train_label = train_kobe['shot_made_flag']
train_kobe = train_kobe.drop('shot_made_flag',1)
test_kobe = raw[pd.isnull(raw['shot_made_flag'])]
test_label = test_kobe.drop('shot_made_flag',1)
pandas清洗Kobe数据相关推荐
- 数据清洗- Pandas 清洗“脏”数据(一)
概要 准备工作 检查数据 处理缺失数据 添加默认值 删除不完整的行 删除不完整的列 规范化数据类型 必要的转换 重命名列名 保存结果 更多资源 Pandas 是 Python 中很流行的类库,使用它可 ...
- 如何使用 Pandas 清洗二手房数据并存储文件
目录 一.实战场景 二.知识点 python 基础语法 python 文件读写 pandas 数据清洗 三.菜鸟实战 清洗前的文件 读取源文件 对二手房数据进行清洗 清洗完成后保存到文件 运行结果 运 ...
- juypter 不省略_常用pandas清洗数据命令
pandas清洗数据常用命令 安装jupyter notebook 启动 jupyter 可以在里面编写python代码 1. 加载数据df = pd.DataFrame(pd.read_excel( ...
- Pandas 常用函数 数据整理与清洗
当有一定数据积累时,可以对数据进行较为详细的分析,数据处理一般分为三个阶段:数据整理与清洗.数据分析与建模.数据可视化与制表,其中Pandas 是处理数据最常用的工具. 文章目录 0.数据结构 1.读 ...
- pandas 空字符串与na区别_python从安装到数据分析应用高手 Pandas处理文本数据(一)...
数据分析师的一天 作为一名数据分析师,目前而言是以业务为中心,取数,清洗整理数据,取数与清洗数据会消耗大量的工作时间,毕竟代码需要跟着业务节奏变化. 其中文本数据相比数值数据更具复杂性,本文就pand ...
- 使用Python清洗文本数据
点击关注我哦 一篇文章带你了解使用Python清洗文本数据 数据格式并不总是表格格式.随着我们进入大数据时代,数据具有相当多样化的格式,包括图像,文本,图形等. 由于格式非常多样,从一种数据到另一种数 ...
- 【数据挖掘】3、NumPy与Pandas 清洗、爬虫、 SciKitLearn 变换、可视化
文章目录 一.NumPy 1.1 创建数组 1.2 结构数组 1.3 连续数组 1.4 算数运算 1.5 统计函数 1.6 排序 1.7 实战 1.8 FAQ 1.8.1 axis 1.8.2 数据类 ...
- Pandas处理时序数据(初学者必会)!
↑↑↑关注后"星标"Datawhale每日干货 & 每月组队学习,不错过Datawhale干货 作者:耿远昊,Datawhale成员,华东师范大学 时序数据是指时间序列数据 ...
- 学习用Pandas处理分类数据!
↑↑↑关注后"星标"Datawhale每日干货 & 每月组队学习,不错过Datawhale干货 作者:耿远昊,Datawhale成员,华东师范大学 分类数据(categor ...
最新文章
- 民生银行数据库智能运维的探索与实践
- 笔记-项目管理基础知识-项目组织结构
- 删边(normal)
- python之字典使用方法总结
- dede rss.php,DeDeCMS dede 织梦cms RSS全站静态输出的实现方法
- python标准库模块_Python标准库模块之heapq
- connect函数在阻塞和非阻塞模式下的行为
- 计算机如果算积分排名,超级电脑预测英超积分榜:蓝军守住第4 曼联无缘欧冠...
- 吴军:我们之所以高估一些事情,源于认知
- neo4j values
- 在controller类的每个方法执行前调用某个方法_springboot:异步调用@Async
- Linux下常用的压缩解压命令[收藏]
- xp系统之家官网纯净版系统下载
- 常用参考文献GB/T 7714, MLA ,APA格式区别
- java实现滑动验证码
- 类型 异常报告 消息 null 描述 服务器遇到一个意外的情况,阻止它完成请求。 例外情况 java.lang.NumberFormatException: null java.base/
- [错误解决] paramiko.ssh_exception.SSHException: Error reading SSH protocol banner
- 教你怎样用最少的钱拍出最美的婚纱
- CSS综合案例-品优购电商04
- 20220517 Python 制作一个儿童学习软件 (附源码和软件下载) 包含语音合成 视频播放 pyqt pptsx3 Qmovie request pygame 音频播放
热门文章
- 一起重新开始学大数据-java篇-DAY12-自习课来波练习题
- 网易2020校招笔试-c++开发工程师
- 注册表文件缺失oracle,win7开机提示由于系统注册表文件丢失或损坏因此无法加载怎么办...
- No.1进程管理器V1.62--优秀的进程管理工具
- setAttribute()和setProperty()
- Java的@Transactional事务回滚
- Ubuntu安装NVIDIA英伟达显卡驱动教程
- JavaWEB三:Javascript
- JAVA中Swing组件的标签,组合框和列表
- 【移动开发】InfoQ 2022 年移动和物联网趋势报告