python小项目一:NBA比赛数据分析
来源:互联网 发布:网络用语bp是什么意思 编辑:程序博客网 时间:2024/05/21 12:58
该项目来源于实验楼,我这里只是记录下自己做完项目的笔记和总结(实验楼是py2的代码,我则是用的py3)。
项目目的:通过分析之前的比赛数据,得到每个队伍的状态的特征表达,利用机器学习训练回归模型,从而对新的比赛进行预测。
为了掌握并实现这个项目,需了解一下几个问题:
1. 如何读取文件夹中的数据?
答:这个项目的数据存储在.csv文件中,因此使用pandas库中的read_csv函数进行读取操作。在读取时给出文件名的路径即可(可用+运算符连接不同的字符串)。读入的数据为Dataframe类型的数据,这是pandas中特有的数据类型,近似理解为可用字符串作为索引的二维数据。
2. 如何对Dataframe类型的数据进行操作?
我们需要把读入的数据转化为训练模型(回归模型)所需要的特征。因此需要把三个不同文件中读入的数据进行裁剪(对应pandas.DataFrame.drop方法)、合并(对应pandas.merge)及其按照team作为索引(pandas.DataFrame.set_index)。
drop方法:删除行:df.drop('列标', axis=1)
删除列:df.drop('行标')
merge方法:这个方法让我产生了“还能有这种操作”的感慨。
新数据 = pd.merge(数据1,数据2,how=' ' ,on=' ')
参数how指出合并后的数据keys是数据1还是数据2说了算,可取值为left、right、outer、inner;而on指出keys,即按哪个键值合并。
set_index方法:set_index(keys, drop= True, append = False)
指出用于索引的keys。
3. 处理Dataframe数据,需要遍历,如何做?访问这个数据中的某一个元素,如何做?
Pandas.DataFrame.iterrows()方法可以返回生成器,以(index,series)对dataframe类型进行循环。
注意DataFrame数据[键值]这样来访问数据是不行的。正确方法是df.loc[索引]可以取出这一索引index对应的series。(注意是.loc[])。而取出的series可以用iteritems来做迭代,从而取出每一个元素。
4.建立好特征后,通过使用回归模型来得到训练的预测模型?
使用skleran,三步走:实例化一个回归模型model = ... , model.fit(X, y),model.predict()。
这个项目预测得到概率,因此用logistic模型,预测时使用predict_proba()方法即可得到概率。
5.文章写入时遇到TypeError: a bytes-like object is required, not str错误。
该错误往往是open()打开文件是,使用二进制模式,之后如果是使用了str()函数,就会出现该错误。这里改为用'w'模式打开就好。
我编写的相关代码可以在http://download.csdn.net/detail/u010103202/9866840处下载。
- python小项目一:NBA比赛数据分析
- 利用Python进行NBA比赛数据分析
- NBA比赛数据分析与预测
- 利用Python对NBA SportUV数据进行可视化及分析
- python爬虫+数据分析之NBA球员LBJ13个赛季的数据分析
- 数据分析两场NBA比赛结果!大数据+NBA=?
- 数据分析两场NBA比赛结果!大数据+NBA=?
- Python3 爬取 NBA 2013-2014 赛季比赛数据
- 决策树-NBA比赛预测
- Python数据分析小练习
- Python爬虫爬取NBA数据
- Python数据分析(一)
- 【大数据部落】NBA体育决策和数据挖掘分析
- 《python数据分析读书笔记》--- (一)数据探索
- python数据质量分析小例子
- Python数据分析-小技巧[1]
- NBA篮球运动员大数据分析决策支持系统
- python简单框架实现爬取NBA球员数据
- 近期反思及小结
- Python中的自定义sum函数
- scikit-learn 常用分类算法的使用
- Android计时器
- HDU6025 Coprime Sequence —— 前缀和 & 后缀和
- python小项目一:NBA比赛数据分析
- (转)“领导者”沈南鹏:逼着自己不断思考,作为VC没有选择
- 如何实现java的序列化
- RMAN-03002, RMAN-06059, ORA-19625 and ORA-27037 When Running RMAN Backup of Archivelogs
- 尼克的任务
- python基础 元组和列表区别与转换
- Facebook 发布开源框架 PyTorch, Torch 终于被移植到 Python 生态圈
- 机器人手眼协调——机械臂自主抓取物体
- sprime-section1.5