OpenHarmony开发者论坛
标题:
爬取球员数据
[打印本页]
作者:
俺也不知道叫啥名字好听
时间:
2024-12-29 19:37
标题:
爬取球员数据
[md]***网站爬取数据获取\****
**为了分析球员联赛表现,我们爬取球员联赛数据**
---
#### 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分钟除去点球预期进球+预期助攻数** |
[/md]
欢迎光临 OpenHarmony开发者论坛 (https://forums.openharmony.cn/)
Powered by Discuz! X3.5