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