Pandas實戰 NBA籃球隊員成績分析

2021-09-03 01:31:58 字數 4046 閱讀 6419

編寫python程式,輸入數目n,輸出n個最有效率的球員。計算效率需要將整個效率除以該球員的比賽場數。詳細公式如下:

efficiency = ((pts + reb + asts + stl + blk) - ((fga - fgm) + (fta - ftm) + turnover ) )/ gp

部分命名對應含義:

命名含義

pts得分

asts

助攻stl

搶斷blk

蓋帽fga

投籃次數

fgm命中次數

minutes

上場時間

reb籃板

fta罰球次數

ftm罰球命中次數

turnover

失誤gp

比賽場數

所需環境庫安裝(pandas)

windows:開啟cmd命令列,pip install pandas 或在編譯器中引用pandas,編譯器會提示你安裝pandas庫。

linux:開啟終端,pip install pandas

整個程式的邏輯

利用pandas讀取csv檔案(所謂的載入)

完成無用資料清洗

格式化資料

視覺化列印

開始編寫程式

import pandas as pd
#給定乙個全域性變數@filename

filename =

'player_regular_season.csv'

df = pd.read_csv(filename,delimiter=

",")

# 這裡初始化乙個dataframe變數,後面會用到

df_result = pd.dataframe(

)

def

load()

:global df_result

for index, row in df.iterrows():

#根據題目設定,當gp(場數為無效值,整條清掉)

if row[

'gp']==

'n':

df.drop(index, axis=

0, inplace=

true

)#二次過濾,如果gp中還有無效值將替換為pd中的nan無效值

pd.to_numeric(df[

'gp'

], errors=

'coerce'

)#將gp列dtype強制轉換為int(64)型別

df['gp'

]= df[

'gp'

].astype(

int)

#效率值計算並新增為新的列

df['efficiency']=

((df[

'pts'

]+ df[

'reb'

]+ df[

'stl'

]+ df[

'blk'])

-((df[

'fga'

]- df[

'fgm'])

+(df[

'fta'

]- df[

'ftm'])

+ df[

'turnover'])

)/df[

'gp'

]#根據題目設定,過濾掉效率為負數的成員。

for index, row in df.iterrows():

if row[

'efficiency'

]<0:

df.drop(index, axis=

0, inplace=

true

)#按照效率值排序df並存入df_result

df_result = df.sort_values(

'efficiency'

,ascending=

false

)

def

showsock

(n,print_type)

:global df_result

global df

index_num =

0 times =27-

len(

"name")-

len(print_type)/2

print(5

*" "

,"name"

," "

*int

(times)

, print_type)

print(45

*"-"

) df_result = df.sort_values(print_type, ascending=

false

)for index,row in df_result.iterrows():

if index_num == n :

break

else

: name = row[

'firstname'

]+ row[

'lastname'

] result =

str(row[print_type]

) length =

len(name)

length2 =

len(result)

times =

20- length

space =

" "* times

times2 =

20- length2

space2 =

" "* times2

print

(name, space,

":",space2,result)

index_num +=

1print(45

*"-"

)

def

sreach()

:print

("程式載入完成!"

)print

("請輸入要查詢的值(英文縮寫):"

)print

("-"*45

)print

("pts:得分 asts:助攻 stl:搶斷 blk:蓋帽"

)print

("fga:投籃次數 fgm:命中次數 minutes:上場時間 reb:籃板"

)print

("fta:罰球次數 ftm:罰球命中次數 turnover:失誤 efficiency:效率值"

)print

("-"*45

) print_type =

input()

type_list =

["pts"

,"asts"

,"st1"

,"blk"

,"fga"

,"fgm"

,"minutes"

,"reb"

,"fta"

,"ftm"

,"turnover"

,"efficiency"

]if print_type not

in type_list:

print

("輸入型別有誤,請重新輸入!"

) sreach(

)print

("-"*45

)print

("請輸入查詢數量:"

)print

("-"*45

) n =

int(

input()

)print

("-"*45

) showsock(n, print_type)

print

("程式預載入中,請稍後···"

scrapy爬蟲實戰 抓取NBA吧的內容

6 debug 7 資料存入資料庫 進入之前以及搭建好的虛擬環境 在anaconda的shell中輸入下面格式 scrapy shell 要爬取的 進入貼吧頁面的開發者模式 在瀏覽器上按f12 分析標籤 再次進入shell檢視需要的資料,同時觀察資料特徵 頁面中帖子的url位址 url list r...

pandas實戰教程1 熱門電影

剛學完pandas基礎後跟著老師寫的乙個熱門電影資料分析,電影分析資料集位址 1.匯入資料 unames user id gender age occupation zip users pd.read table ml 1m users.dat sep header none names uname...

Pandas資料分析實戰03

讀取北上廣深瓜子二手車的資料 1.分別讀取4個csv檔案,然後合併多個csv檔案 2.去重複資料,重新設定連續索引 3.統計汽車自動擋和手動擋分別有多少輛 4.統計哪個城市二手車數量最多 5.統計深圳市最多的二手車品牌 瓜子網二手車交易資料 import numpy as np import pan...