1. 程式人生 > >python小專案一:NBA比賽資料分析

python小專案一:NBA比賽資料分析

該專案來源於實驗樓,我這裡只是記錄下自己做完專案的筆記和總結(實驗樓是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比賽資料分析

該專案來源於實驗樓,我這裡只是記錄下自己做完專案的筆記和總結(實驗樓是py2的程式碼,我則是用的py3)。 專案目的:通過分析之前的比賽資料,得到每個隊伍的狀態的特徵表達,利用機器學習訓練迴歸模型,從而對新的比賽進行預測。 為了掌握並實現這個專案,需瞭解一下幾個問題:

利用Python進行NBA比賽資料分析

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

練手專案JAVA聊天室原始碼

客戶端: import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; imp

Python專案實現簡單的web伺服器

本部落格是整理在學習實驗樓的課程過程中記錄下的筆記形成的,參考:https://www.shiyanlou.com/courses/552。不同之處在於實驗樓使用python2.7,而博主這裡使用的是python3.6。在學習中也因為python版本不同遇到了一些坑,這裡寫

python學習筆記基本資料型別

1、python的一切都是物件,物件是包含屬性和方法的一個整體。 2、資料型別的組成:身份 (記憶體地址,通過id方法可看它的唯一識別符號);型別(通過type方法檢視);值(資料項) 3、常用基本資料型別 int  整型 bool  布林 

python練習5如何判斷個數能否被3整除

題:如何判斷一個數能否被3整除?(或者被其他任意一個數整除) 方法一:取餘 x = input("input an number:") if x % 3 == 0: print "%d 能被3整

給大家推薦五個Python專案,Github上的人氣很高的

1.深度學習框架 Pytorch https://github.com/pytorch/pytorch PyTorch 是一個 Torch7 團隊開源的 Python 優先的深度學習框架,提供兩個高階功能: ● 強大的 GPU 加速 Tensor 計算(類似 numpy) ● 構建基於 tape 的自

python練習3給定個數,判斷其是否為素數

題:給定一個數,判斷其是否為素數 分析:首先,什麼事素數呢?只能被 1 和它本身整除的數叫做素數,當然,1 既不是素數也不是合數。   知道了什麼是素數,就要開始考慮怎麼實現。首先,比如給一個數是

Python專案快速開發出一個簡單的學生管理系統

本文根據實際專案中的一部分api 設計抽象出來,例項化成一個簡單小例子,暫且叫作「學生管理系統」。     這個系統主要完成下面增刪改查的功能: 包括: 學校資訊的管理 教師資訊的管理 學生資訊的管理 根據Api請求的動作:

專案EXCEL資料分析(5W2H法)使用者購買行為分析

專案:用EXCEL對使用者購買行為進行分析---採用5W2H框架 1.確定分析思路 1.1使用者購買行為分析:5W2 WHY:使用者購買的目的是什麼?---市場調查獲取資料 WHAT:使用者主要購買的產品?---各產品的銷量分佈

python系列筆記基本資料型別

一.數字 1、 python數字型別分為整形和浮點型別 整數預設使用十進位制數(以10為底),除了十進位制還有以下三種進位制: 0b或0B代表二進位制 0o或0O代表八進位制 0x或0X代表十六進位制  Python 裡最簡單的資料型別是布林型,它只有兩個可選值:Tru

MFC知識將對話框設置為無邊框無標題欄初始最大化樣式

nts fec 按位與 tails blog 不變 無標題 設置 http 今天公司新開始的一個項目。界面模式為無邊框無標題欄初始最大化樣式。其實本來可以直接在屬性裏面將默認的Resizing換成none就可以了,那麽我想如何用代碼來實現呢?於是就百度了一下。找到

最近開始努力學python 寫了一個python代碼判斷一個登陸程序,如果賬號密碼輸錯3次,鎖定賬號無法再登陸

登陸 readlines 輸入 連續 nbsp 努力 一個 取數據 lis 1 count = 0 2 username = ‘zhangsan‘ 3 userpassword = ‘111111‘ 4 5 f = open(‘lock.txt‘,‘r+‘

python django學習簡單註冊/登陸/session

rfi bmi ews exception eth mar %u objects 未使用 註冊 登陸 session user.html 未使用{{useform}}而使用{{ userform.password }}形式便於後期css樣式 <!DOCTYPE htm

python學習筆記()基本概念

單引號 網絡爬蟲 解釋型 g模式 deb 恢復 判斷語句 安裝 bubuko ---恢復內容開始--- 一.python簡介 pyhthon是解釋型語言,python可以用來網絡爬蟲、數據分析、web開發、人工智能、嵌入式、自動化測試、自動化運維等,所有語言中,地方放庫最多

深入理解JVM()執行時資料

深入理解JVM(一):執行時資料區 執行時資料區 JVM在執行java程式的過程中,會把記憶體分為幾個不同的資料區域,如上圖所示。 程式計數器 雖然圖片中程式計數器所佔的面積比較大,但實際上程式計數器所佔的記憶體非常小,也是唯一一塊在所有JVM中都沒有規定OOM的區

PYTHON——多執行緒佇列Queue資料結構

1、佇列模組簡介   佇列是一種資料結構,用於存放資料,類似列表。它是先進先出模式(FIFO模式),類似管道一般; 單執行緒不需要用到佇列Queue,它主要用在多執行緒之間的,Queue稱為多執行緒利器。 列表在多執行緒共享資源的話,與queue佇列比較,主要表現為列表在多執行緒中,資料不安全。多個執行

C/C++訓練專案2048

  2048是一款有趣的益智小遊戲,風靡一時的2048小遊戲,玩家需要在格子中通過數字疊加的方法將最初的數字2湊成數字2048. #include<iostream> #include<ctime> #include<vector> #incl

python實戰專案示例 揭祕微信朋友圈

通過python,連線到微信賬號,收集好友性別、城市、個性簽名等公開資訊,使用 Python 進行資料統計與分析,得到你專屬的朋友圈的分析報告! 1、準備工作 1.1 環境配置 編譯環境:Windows10 程式語言:Python3.6 編譯器IDE:Pycharm 瀏覽器工

簡單的django框架應用及專案

一、用django框架獲取全國天氣 在我們開始做專案的步驟大概分為四個步驟: 準備階段    1.首先,我們在桌面建一個新的資料夾,然後在在這個資料夾裡新建專案(在終端裡程式碼建立),新建App,操作過程如下圖所示:    2. -建好專