編寫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...