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

2021-08-02 10:11:29 字數 1327 閱讀 1096

該專案**於實驗樓,我這裡只是記錄下自己做完專案的筆記和總結(實驗樓是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,即按哪個鍵值合併。

指出用於索引的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'模式開啟就好。

C 實現演講比賽小專案

對於這個小專案,有兩個只是盲區 1 定義了乙個自定義資料型別的類之後,在後面建立的時候,自定義資料型別必須要有預設建構函式,如果在自定義的類裡面定義了有參構造,就要自己定義乙個預設建構函式。2 自定義map容器等容器的排序的時候,傳進來的引數被系統預設以const型別的形式傳進來的,所以在過載ope...

小專案一(思路篇)

目標 有乙個user類,實現user的增刪改查,在前端有增刪改查的頁面,後端處理邏輯 一.先在entity層建立user類 有id 編號 name 姓名 password 密碼 三個屬性 二.搭展示頁面 能將user類的資訊展現出來 三.在servlet層處理邏輯操作 展示邏輯 建立乙個集合,裡面已...

Python 小專案踩坑記錄

原因 影象物件被 了 解決辦法 使用其他物件引用該物件即可 也可用於本專案全域引用,可被任意其他檔案使用如list引用 參考 原因 使用全域性變數進行賦值操作而沒有標明 解決辦法 使用 global x 指明使用的是全域性變數 參考 解決辦法 使用lambda表示式,即 lambda fun x 參...