积分10 / 贡献0

提问0答案被采纳0文章9

作者动态

[开发者活动] 爬取球员数据

俺也不知道叫啥名字好听 显示全部楼层 发表于 2024-12-29 19:37:12

*网站爬取数据获取**

为了分析球员联赛表现,我们爬取球员联赛数据


1.爬取球员数据


# 从 FBREF 网站上爬取曼联球员23-24赛季英超联赛数据*

df = **pd**.**read_html**('https://fbref.com/en/squads/19538871/2023-2024/Manchester-United-Stats', 

•         attrs={"id":"stats_standard_9"}, header=1)[0]

# 部分球员没有联赛出场数据,不纳入考虑范围,删去*

df = df.**dropna**()

df.**head**() 

Player Nation Pos Age MP Starts Min 90s Gls Ast ... Ast.1 G+A.1 G-PK.1 G+A-PK xG.1 xAG.1 xG+xAG npxG.1 npxG+xAG.1 Matches
0 André Onana cm CMR GK 27.0 38 38 3420.0 38.0 0.0 0.0 ... 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 Matches
1 Diogo Dalot pt POR DF 24.0 36 35 3174.0 35.3 2.0 3.0 ... 0.09 0.14 0.06 0.14 0.05 0.08 0.13 0.05 0.13 Matches
2 Bruno Fernandes pt POR MF,FW 28.0 35 35 3118.0 34.6 10.0 8.0 ... 0.23 0.52 0.17 0.40 0.29 0.34 0.63 0.18 0.51 Matches
3 Alejandro Garnacho ar ARG FW 19.0 36 30 2565.0 28.5 7.0 4.0 ... 0.14 0.39 0.25 0.39 0.29 0.18 0.47 0.29 0.47 Matches
4 Marcus Rashford eng ENG FW 25.0 33 26 2271.0 25.2 7.0 2.0 ... 0.08 0.36 0.20 0.28 0.29 0.09 0.38 0.23 0.32 Matches

5 rows × 34 columns

2.进行一下预处理


数据过于庞大,拆分为6张表

# 将全表拆分为6个分表*

details = df[['Player', 'Nation', 'Pos', 'Age']]

playing = df[['MP', 'Starts', 'Min', '90s']]

behave = df[['Gls', 'Ast', 'G+A', 'G-PK',  'PK', 'PKatt', 'CrdY', 'CrdR']]

expect = df[['xG', 'npxG', 'xAG',  'npxG+xAG']]

progress = df[['PrgC', 'PrgP',  'PrgR']]

ninty_min = df[['Gls.1', 'Ast.1', 'G+A.1', 'G-PK.1', 'G+A-PK', 

•       'xG.1', 'xAG.1', 'xG+xAG', 'npxG.1', 'npxG+xAG.1']]

3.变量解释


Details
'Player', 球员姓名
'Nation', 球员国籍
'Pos', 球员位置
'Age', 球员年龄
Playing
'MP', 出场次数
'Starts', 首发出场次数
'Min', 出场时间(单位:分钟)
'90s', 踢满全场的次数
Behave
'Gls', 进球次数
'Ast', 助攻次数
'G+A', 进球+助攻次数
'G-PK', 除去点球的进球次数
'PK', 点球进球次数
'PKatt', 罚点球次数
'CrdY', 黄牌次数
'CrdR', 红牌次数

Expect
'xG', 预期进球数
'npxG', 除去点球预期进球数
'xAG', 预期助攻数
'npxG+xAG', 除去点球预期进球数+预期助攻数

Progress
'PrgC', 推进带球次数
'PrgP', 推进传球次数
'PrgR', 推进接球次数

Ninty_min
'Gls.1', 每90分钟进球次数
'Ast.1', 每90分钟助攻次数
'G+A.1', 每90分钟进球+助攻次数
'G-PK.1', 每90分钟除去点球的进球次数
'G+A-PK', 每90分钟除去点球的进球+助攻次数
'xG.1', 每90分钟预期进球数
'xAG.1', 每90分钟预期助攻数
'xG+xAG', 每90分钟预期进球+预期助攻数
'npxG.1', 每90分钟除去点球预期进球数
'npxG+xAG.1', 每90分钟除去点球预期进球+预期助攻数

©著作权归作者所有,转载或内容合作请联系作者

您尚未登录,无法参与评论,登录后可以:
参与开源共建问题交流
认同或收藏高质量问答
获取积分成为开源共建先驱

Copyright   ©2023  OpenHarmony开发者论坛  京ICP备2020036654号-3 |技术支持 Discuz!

返回顶部