对FIFA22播放器数据集的分析
探索性数据分析(EDA)是数据分析过程中关键的第一步。它侵入了各种技术,工具和可视化的使用,以了解数据集的结构,模式和特征。 EDA的主要目标是从数据中获得见解,识别模式和趋势,检测异常并准备数据以进行进一步的分析和建模。
FIFA22
数据集是从FIFA
的流行足球视频游戏中提取的。每年,都会为世界上所有最大比赛的所有球员发行一款新游戏,具有更新的特征和技能。这意味着在2015
和2022
之间传递了玩家的最新特征和技能。玩家特征可以在变量中找到:播放器name
,age
,height in centimeters
,weight in kilogram
,weight in kilogram
,nationality
,player
player
position
,preferred foot
,preferred foot
,international reputation
和contract duration
等。现场播放器技能分为六个子类别,即passing
,defending
,physical
,physical
,shooting
和pace
。
对于守门员,子类别是kicking
,handling
,shooting
,reflexes
,reflexes
,diving
和speed
。子类别都具有子类别本身。此外,每个玩家在游戏中都有overall
评分和potential
评分。所有评分均在1
和99
范围内,其中最低为1
,而99
是最高得分。
数据集中的信息源自sofifa.com,该网站是一个著名的网站,每年概述所有FIFA数据。可以从this kaggle data repositry
下载数据集的副本本文的目的是使用EDA技术来潜入FIFA22数据集,从数据集中得出一些有趣的见解并识别异常。
我们要回答的Comon问题包括:
- 谁是FIFA 2022中最快的球员?
- 哪些球员得到了最高的薪水?
- 谁是最高的球员?
- 谁是最强大的球员?
- 谁是长传中最好的球员?
- 谁是最好的后卫?
先决条件
您需要拥有SQL的基本知识才能遵循本指南,还可以安装我们将使用的任何SQL工具运行代码,即MySQL,MSSQL,PostgreSQL等。
加载数据集
首先,我们需要加载要使用的数据集。有几种方法可以将/导入数据集加载到SQL数据库中,因为本指南将使用Python将数据集导入PostgreSQL。
。注意:其他SQL工作台允许可以直接从Workbench EG.MysQL导入。由于我正在使用以某种方式进行导入数据集的Postgres,因此我决定使用Python将数据集导入PSQL DB,这是一种更快,更令人信服的方式。
使用Python将数据集导入SQL;
Python中的TO_SQL()函数用于将PANDAS DataFrame的记录写入SQL数据库。这是一个非常强大的功能,可用于以各种数据库格式存储数据。
TO_SQL()函数的语法如下:
import pandas as pd
player_df = pd.read_csv('player_22')
from sqlalchemy import create_engine
engine = create_engine('postgresql://postgres:mlyt09@localhost:5432/projectsql')
在这里:
postgresql://
> sql_tool,postgres:
>用户,>密码,mlyt09
@localhost:
> host,5432
> port,/projectsql
数据库。
player_df.to_sql(name='players', con=engine,index=False if_exists='replace')
-
player_df
是您要写入数据库的PANDAS数据框架。 -
name
是您要在数据库中创建的表的名称。 - con是数据库的连接对象。
-
if_exists
指定该表已经存在该怎么办。可能的值是失败,替换和附加的。 -
index
指定是否将数据框的索引写入数据库。 -
dtype
指定了数据框中的列的数据类型。 -
schema
指定数据库的架构。
检查以确认数据在PSQL ...
中
projectsql=# \dt players
关系列表
模式 | 名称 | 类型 | 所有者 |
---|---|---|---|
公共 | 玩家 | 表 | Postgres |
projectsql=# \d players
表“ public.players”
列 | 类型 | 整理 | 无效 | 默认 |
---|---|---|---|---|
sofifa_id | bigint | |||
player_url | 文本 | |||
short_name | 文本 | |||
long_name | 文本 | |||
年 | bigint | |||
Player_positions | 文本 | |||
总体 | bigint | |||
电势 | bigint | |||
value_eur | 双精度 | |||
Wage_eur | 双精度 | |||
年龄 | bigint | |||
dob td> | 日期 | |||
height_cm | bigint | |||
stright_kg | bigint |
100+其他列.....
首先,使用SQL查询来回答我们的一些Quetions。
(QR1)检查以确认数据集中的记录/播放器总数:
注意:QR在这里表示查询,因此QR1,2,3> query1,2,3等。
SELECT COUNT(*) AS total_no_of_players FROM players;
total_no_of_players |
---|
19239 |
(QR2)2022年的十大球员国籍:
SELECT DISTINCT nationality_name, COUNT(nationality_name) AS total_no_of_players
FROM players GROUP BY nationality_name
ORDER BY total_no_of_players DESC LIMIT 10;
norlantity_name | total_no_of_players |
---|---|
英格兰 | 1719 |
德国 | 1214 |
西班牙 | 1086 |
法国 | 980 |
阿根廷 | 960 |
巴西 | 897 |
日本 | 546 |
荷兰 | 439 |
美国 | 413 |
波兰 | 403 |
如上所述,我们使用DISTINCT
关键词来选择玩家的独特/独特国籍。在上面的查询中,使用COUNT
函数,我们能够计算每个国家代表的球员总数,
从结果来看,我们可以看到england
在Club-Football World @2022中具有最高的代表。
(QR3)足球最有才华的国家(由越野脉)球员:
足球运动员的潜力是一个复杂而多方面的概念。它可以定义为球员发挥足球运动员的全部潜力的能力。这种潜力取决于许多因素,包括玩家的身体属性,技术技能,战术意识,心理力量和心理构成。
足球运动员的潜力不是固定的。它可以通过培训,努力和奉献精神来开发和改进。愿意努力工作和奉献精神的球员可以发挥自己的全部潜力并成为世界一流的足球运动员。
SELECT sum(potential) FROM players WHERE potential > 79;
SELECT DISTINCT nationality_name, ROUND((SUM(potential)/147969)*100,2) potential
FROM players
WHERE potential > 79
GROUP BY nationality_name
ORDER BY potential DESC LIMIT 10;
norlantity_name | 潜力 |
---|---|
西班牙 | 13.03 |
英格兰 | 9.29 |
法国 | 8.85 |
巴西 | 6.13 |
阿根廷 | 5.95 |
德国 | 5.04 |
葡萄牙 | 4.78 |
荷兰 | 4.30 |
意大利 | 3.93 |
比利时 | 2.86 |
(10行) |
年龄和性能用于评估玩家的潜力,年轻和良好的表现越高,评分就越高。这些是俱乐部销售者之一,用于侦察新的年轻和才华横溢的球员加入他们的项目。如上所述,我们计算了每个县拥有的能力球员的百分比,看到来自欧洲和南美国家的球员具有最好的潜在参与者并不令人惊讶。
(QR4)前10名最快的球员:
在以下代码中,下面列出的这些重点将用于对最快的玩家进行排名;
Movem_Acceleration,Movem_sprint_speed,pace,club_position。
Movem_Acceleration,Movem_sprint_speed和PACE的最重要的播放器属性是Movem_Acceleration。这是因为加速度是玩家可以改变速度的速度。这对于所有位置的球员都很重要,但是对于在攻击位置(例如边锋和前锋)中扮演的球员尤其重要。
运动_sprint_speed也很重要,但不如运动_acceleration重要。这是因为sprint_speed是玩家可以达到的最大速度。但是,玩家不需要经常达到最大速度。他们需要能够迅速加速以使防守者超越并创造得分机会。
pace是运动_acceleration和Movem_sprint_speed的组合。这是对玩家速度的良好总体度量,但不如运动_acceleration或Movemt_sprint_speed。
SELECT short_name, movement_acceleration,
movement_sprint_speed, pace,club_position,nationality_name
FROM players ORDER BY movement_acceleration DESC LIMIT 10;
short_name | Movemt_acceleration | Movemt_sprint_speed | pace | club_position | norlantity_name |
---|---|---|---|---|---|
k。 mbappâ | 97 | 97 | 97 | st | 法国 |
adamatraorâ td> | 97 | 96 | 96 | LW td> | 西班牙 |
m。 Diaby | 96 | 92 | 94 | rm | 法国 |
d。詹姆斯 | 96 | 95 | 95 | sub | 威尔士 |
a。戴维斯 | 96 | 96 | 96 | lb | 加拿大 |
a。 hakimi | 95 | 95 | 95 | RB | 摩洛哥 |
VinaâciusJr .. td> | 95 | 95 | 95 | sub | 巴西 |
r。斯特林 | 95 | 88 | 91 | sub | 英格兰 |
u。 antuna | 95 | 90 | 92 | sub | 墨西哥 |
c。 ejuke | 95 | 93 | 94 | lm | 尼日利亚 |
(10行)
加速度通常定义某人/事物移动的速率。与其他变量浓度一起,我们可以看到最快的玩家是Kylian mbape
,这并不令人惊讶,因为他的攻击性很高。
奖励:代码说明
让我们按行分解代码:
- 选择是告诉数据库从表中选择特定列的关键字。
- long_name,movemt_acceleration,movem_sprint_speed,pace,club_position和nationality_name是我们要选择的列。
- 是一个关键字,该关键字告诉数据库哪个表选择列。在这种情况下,该表被称为玩家。
- 订单是一个关键字,该关键字告诉数据库按降序序列订购结果。
- desc是告诉数据库以降序顺序订购结果的关键字。
- 限制是将结果限制为前10行的关键字。
该代码将返回以下结果:
long_name,movemt_acceleration,movem_sprint_speed,pace,club_position和nationality_name的10个具有最高运动的玩家。
结果将按降序序列订购。
(QR5)Stregnth的前10名最强大的球员:
SELECT short_name, power_strength, power_stamina,physic, weight_kg, club_name
FROM players
ORDER BY power_strength DESC LIMIT 10;
short_name | power_strength | power_stamina | 物理 | weight_kg | club_name |
---|---|---|---|---|---|
a。工作 td> | 97 | 34 | 74 | 110 | Wycombe Wanderers |
t。 petrâtrâ¼ | 96 | 57 | 79 | 99 | rakâwczâststochowa |
d。堤防 | 96 | 59 | 78 | 100 | 奥兰多城市足球俱乐部 |
r。卢卡库 | 95 | 71 | 83 | 94 | 切尔西 |
a。 seck | 95 | 73 | 86 | 95 | 皇家安特卫普FC |
a。 mândez | 95 | 81 | 86 | 82 | 国家足球俱乐部 |
g。 kondogbia | 94 | 82 | 89 | 76 | atlâticode madrid td> |
s。 Coates | 94 | 80 | 87 | 92 | 运动CP |
c。 luyida td> | 94 | 73 | 85 | 91 | Galatasaray SK |
k。 Koulibaly td> | 94 | 70 | 85 | 89 | napoli |
(10行)
球员的力量和耐力通常决定自己的稳定性,构成和控制球。上述高品质的球员通常比Oposition玩家(防守或攻击)具有优势。
(QR6)耐力的前10名最强大的球员:
SELECT long_name, power_strength, power_stamina,physic, weight_kg, club_name
FROM players
ORDER BY power_stamina DESC LIMIT 10
long_name | power_strength | power_stamina | 物理 | weight_kg | club_name |
---|---|---|---|---|---|
n'golokantâ | 72 | 97 | 83 | 70 | 切尔西 |
Jewgienij baszkirow | 52 | 96 | 67 | 71 | Zagâ¼thâ€âbie lubin |
Rhyan Bert Grant | 77 | 95 | 82 | 79 | 悉尼FC |
vladimâ€darida td> | 48 | 95 | 63 | 67 | Hertha BSC |
安德鲁·罗伯逊(Andrew Robertson) | 65 | 95 | 76 | 64 | 利物浦 |
nicolâbarella td> | 69 | 95 | 78 | 68 | 间 |
!⣣ | 71 | 95 | 73 | 68 | Coens td> |
Pieter Gerkens | 58 | 94 | 71 | 72 | 皇家安特卫普FC |
79 | 94 | 79 | 77 | 少年FC | |
Denzel Justus Morris Dumfries | 89 | 94 | 89 | 80 | 间 |
(10行)
最好的球员FIFA22(位置明智)
谁是FIFA22视频游戏的最佳玩家(位置),引起与每个玩家位置相关的变量,我们将要回答以下问题;
(QR7)最好的边锋:
查看数据集,我们将意识到LW(左翼)和RW(右翼)列都被格式化为文本,即使它们包含数字,在以下查询中,我们可以理解原因。
其中一些数字包含非数字的字符,我们将必须清理并将列转换为整数!
--lw
SELECT lw FROM players WHERE lw LIKE '%-%';
上面的代码是
SQL SELECT
语句。它用于从players
表中选择所有行,其中lw
列包含连字符( - )。
lw |
---|
83-1 |
83-1 |
82-1 |
81-1 |
81-1 |
...... 300+其他值
SELECT lw, SUBSTRING(lw,1,POSITION('-' in lw)-1) AS lw_cleaned
FROM players
WHERE lw LIKE '%-%';
上面的代码是
SQL SELECT
语句,它将从players
表返回lw
列,以及一个名为lw_cleaned
的新列。lw_cleaned
列将包含lw
列的值,但已删除连字符( - )。
lw | lw_cleaned |
---|---|
83-1 | 83 |
83-1 | 83 |
82-1 | 82 |
81-1 | 81 |
81-1 | 81 |
.... 300+其他值
UPDATE players SET lw = SUBSTRING(lw,1,POSITION('-' in lw)-1) WHERE lw LIKE '%-%'
更新326
上面的代码是
SQL UPDATE
语句,它将在players
表中更新lw
列。该更新将从lw
列中删除连字符( - )。
最后,我们需要将列转换为整数以应用任何算术操作。
ALTER TABLE players ALTER COLUMN lw TYPE Bigint USING lw::bigint
Alter Table
以上是
SQL ALTER TABLE
语句,将将播放器表中的lw
列的数据类型更改为Bigint
。
让我们将上述应用于RW(右翼):
-- rw
SELECT rw FROM players WHERE rw LIKE '%-%'
rw |
---|
75-1 |
83-1 |
82-1 |
81-1 |
81-1 |
..... 300+
SELECT rw, SUBSTRING(rw,1,POSITION('-' in rw)-1) AS rw
FROM players
WHERE rw LIKE '%-%'
rw | rw |
---|---|
75-1 | 75 |
83-1 | 83 |
82-1 | 82 |
81-1 | 81 |
81-1 | 81 |
80-1 | 80 |
80-1 | 80 |
80-1 | 80 |
UPDATE players SET rw = SUBSTRING(rw,1,POSITION('-' in rw)-1) WHERE rw LIKE '%-%'
更新326
ALTER TABLE players ALTER COLUMN rw type Bigint USING rw::bigint
Alter Table
最后,我们可以为每个玩家添加LW&RW的值,以获得最高的评分播放器,扮演机翼角色!
。下面的代码是
SQL SELECT
语句,它将从players
表中选择特定的列,并按降序订购翼队列的结果。LIMIT
子句将结果限制为前10行。
从技能dribbling,Attacking_short_passing和Movem_Acceleration中的Winger的最重要属性是Skill_Dribbling。这是因为运球是在移动时控制球的能力,这对于那些负责击败后卫和创造得分机会的边锋至关重要。
边锋需要能够运球过去的防守者,以便为自己和队友创造空间。他们还需要能够在狭窄的空间中运球。
Attacking_short_passing对边锋也很重要,因为他们需要能够准确,迅速地将球传递给队友以创造得分机会。但是,它并不像Skill_dribbling那样重要,因为边锋不需要运球就经常传球。
运动_Acceleration对边锋也很重要,因为他们需要能够迅速加速以使防守者超越。但是,它并不像Skill_Dribbling或Attacking_short_passing重要,因为边锋不需要频繁地加速即可运球或传球。
SELECT short_name, rw + lw wingers,skill_dribbling,attacking_short_passing,
movement_acceleration,overall,age, club_name
FROM players ORDER BY wingers DESC LIMIT 10;
short_name | 边锋 | skill_dribbling | Attacking_short_passing | Movemt_acceleration | 总体 | 年龄 | club_name |
---|---|---|---|---|---|---|---|
l。 Messi | 184 | 96 | 91 | 91 | 93 | 34 | 巴黎圣日耳曼 |
Neymar Jr | 180 | 95 | 86 | 93 | 91 | 29 | 巴黎圣日耳曼 |
k。 mbappâ | 180 | 93 | 85 | 97 | 91 | 22 | 巴黎圣日耳曼 |
Cristiano Ronaldo | 176 | 88 | 80 | 85 | 91 | 36 | 曼联 |
m。萨拉赫 td> | 176 | 90 | 84 | 89 | 89 | 29 | 利物浦 |
k。 de bruyne | 176 | 88 | 94 | 76 | 91 | 30 | 曼城 |
r。斯特林 | 174 | 87 | 83 | 95 | 88 | 26 | 曼城 |
h。儿子 | 174 | 87 | 84 | 85 | 89 | 28 | 托特纳姆热刺 |
s。人类 | 174 | 90 | 84 | 93 | 89 | 29 | 利物浦 |
p。 dybala | 174 | 90 | 87 | 88 | 87 | 27 | 尤文图斯 |
(10行)
这是代码的“ wingers”部分的“ RW + LW”的解释:
- RW + LW表达式添加了RW和LW列的值。
- AS Wingers子句赋予新列名称Wingers。
- 这意味着Wingers列将包含RW和LW列的值的总和。这很有用,因为它使我们能够通过他们的整体进攻能力对球员进行排名,而不管他们主要是右翼,左翼或两者兼而有之。
(QR8)最佳转发器(前锋):
在以下代码中,下面列出的这些重点将用于排名最佳的逆转器;
射击,攻击_fininging,Attacking_heading_accuracy,Skill_dribbling,power_shot_power。
前锋最重要的属性是射击。这是因为前锋的主要工作是进球,而射击属性决定了他们这样做的可能性。一个好的前锋将具有很高的投篮属性,他们将能够从各种不同位置取得进球。
列出的其他属性也很重要,但它们并不像拍摄那么重要。例如,具有较高进攻饰面属性的前锋可能能够从近距离进球,但是如果他们没有良好的射击属性,他们将无法从其他位置取得进球。
最终,判断好前锋的最佳方法是观看他们的比赛。但是,如果您只能查看属性,则拍摄属性是最重要的考虑属性。
SELECT COUNT(*) FROM players WHERE shooting IS NULL;
count |
---|
2132 |
UPDATE players SET shooting = 0 WHERE shooting IS NULL;
更新2132
SELECT short_name, shooting, attacking_finishing, power_shot_power,
attacking_heading_accuracy, skill_dribbling, club_name
FROM players ORDER BY shooting DESC LIMIT 10;
short_name | 射击 | 攻击_finishing | power_shot_power | Attacking_heading_accuracy | skill_dribbling | club_name |
---|---|---|---|---|---|---|
Cristiano Ronaldo | 94 | 95 | 94 | 90 | 88 | 曼联 |
l。 Messi | 92 | 95 | 86 | 70 | 96 | 巴黎圣日耳曼 |
r。 lewandowski | 92 | 95 | 90 | 90 | 85 | fc拜仁mânchen |
e。海兰 | 91 | 94 | 94 | 69 | 78 | Borussia Dortmund |
h。凯恩 | 91 | 94 | 91 | 86 | 83 | 托特纳姆热刺 |
l。 suâRrez | 90 | 93 | 89 | 84 | 83 | atlâticode madrid td> |
s。 ag ero | 89 | 93 | 90 | 78 | 86 | FC巴塞罗那 |
k。 mbappâ | 88 | 93 | 86 | 72 | 93 | 巴黎圣日耳曼 |
h。儿子 | 87 | 88 | 88 | 68 | 87 | 托特纳姆热刺 |
m。萨拉赫 td> | 87 | 91 | 82 | 59 | 90 | 利物浦 |
(10行)
(QR9)最佳中场球员:
在以下代码中,下面列出的这些重点将用于对最佳中场人士进行排名;
Mentality_vision,Movemt_Balance,Attacking_Crossing,Mentality_interceptions,Defending_marking_awareness
判断中场球员的最重要属性是心态。这是因为中场运动员需要能够在进攻和防守上看到他们前面的比赛,并在进攻和防守上做出良好的决定。具有高心态的中场球员可以看到他们的队友在哪里,空间在哪里,他们将能够进行传球和十字架,从而创造得分机会。
列出的其他属性也很重要,但它们不如Mentality_vision重要。例如,具有较高攻击的中场球员可能会做好十字架,但是如果他们没有良好的心态属性_vision属性,他们将无法看到队友在哪里,他们将无法做到正确通过。
最终,判断中场球员的最佳方法是观看他们的比赛。但是,如果您只能查看属性,那么Tentality_vision属性是最重要的属性。
SELECT short_name, mentality_vision, movement_balance, attacking_crossing,
mentality_interceptions, defending_marking_awareness, club_name
FROM players ORDER BY mentality_vision DESC LIMIT 10;
short_name | tentality_vision | Movemt_balance | 攻击_Crossing | thenitaly_interceptions | defending_marking_awareness | club_name |
---|---|---|---|---|---|---|
l。 Messi | 95 | 95 | 85 | 40 | 20 | 巴黎圣日耳曼 |
k。 de bruyne | 94 | 78 | 94 | 66 | 68 | 曼城 |
路易斯·阿尔贝托 | 92 | 83 | 69 | 59 | 58 | lazio td> |
p。 dybala | 91 | 94 | 82 | 42 | 32 | 尤文图斯 |
t。 Kroos | 90 | 71 | 88 | 80 | 71 | 皇家马德里CF |
Bruno Fernandes | 90 | 79 | 87 | 66 | 72 | 曼联 |
Neymar Jr | 90 | 84 | 85 | 37 | 35 | 巴黎圣日耳曼 |
l。 modri⧠| 90 | 92 | 86 | 80 | 70 | 皇家马德里CF |
David Silva | 90 | 89 | 83 | 50 | 58 | Real Sociedad |
iniesta | 90 | 76 | 75 | 59 | 68 | Vissel Kobe |
(10行)
(QR10)最佳防守者:
在以下代码中,下面列出的这些重点将用于对最好的防御者进行排名;
movemt_balance,thentality_aggression,thensitaly_interceptions,defending_marking_awareness,defending_sliding_tackle,defending_anding_andand_tackle
判断后卫的最重要属性是防御_Marking_Awareness。这是因为防守者需要能够标记对手并阻止他们得分。具有高辩护的防守者属性属性将能够保持与对手的亲密关系并防止他们进入良好的得分位置。
上面列出的其他属性也很重要,但是它们并不像捍卫_Marking_awareness重要。例如,具有高心态的后卫属性属性可能能够放入硬铲球,但是如果他们没有良好的Defending_marking_awareness属性,他们将无法有效地标记对手。
SELECT short_name, defending_marking_awareness, defending_sliding_tackle, defending_standing_tackle,
mentality_interceptions, mentality_aggression, club_name
FROM players
ORDER BY defending_marking_awareness DESC LIMIT 10;
short_name | defending_marking_awareness | Defending_sliding_tackle | defending_andate_tackle | thenitaly_interceptions | tentality_aggression | club_name |
---|---|---|---|---|---|---|
g。 chiellini | 93 | 88 | 89 | 89 | 88 | 尤文图斯 |
v。 van dijj td> | 92 | 86 | 92 | 90 | 83 | 利物浦 |
râben dias | 90 | 85 | 89 | 85 | 92 | 曼城 |
m。 ¼Kriniar | 90 | 82 | 88 | 86 | 84 | 间 |
k。 Koulibaly td> | 90 | 86 | 88 | 85 | 83 | napoli |
s。 savi⧠| 90 | 83 | 86 | 87 | 86 | atlâticode madrid td> |
n。康德 | 90 | 86 | 93 | 91 | 93 | 切尔西 |
m。 Hummels | 90 | 86 | 90 | 89 | 71 | Borussia Dortmund |
s。 de vrij | 89 | 85 | 87 | 87 | 77 | 间 |
marquinhos | 89 | 89 | 89 | 88 | 81 | 巴黎圣日耳曼 |
(10行)
(QR11)最佳守门员:
在以下代码中,下面列出的这些重点将用于对最佳目标守护者进行排名;
守门员,守门员,守门员,守门员,守门员
判断守门员的最重要属性是守门员。这是因为守门员需要能够迅速做出反应以节省投篮。具有高守门员的守门员属性将能够保存大多数其他守门员都会错过的保存。
列出的其他属性也很重要,但它们不如守门员_reflexes重要。例如,具有高守门员的守门员可能能够抓住球并保持球的良好状态,但是如果他们没有良好的反射,他们将无法节省大量力量的投篮。 P>
SELECT short_name, goalkeeping_reflexes, goalkeeping_handling, goalkeeping_diving,
goalkeeping_kicking,height_cm, club_name
FROM players
ORDER BY goalkeeping_reflexes DESC LIMIT 10;
short_name | 守门员 | 守门员 | 守门员 | 守门员 | height_cm | club_name |
---|---|---|---|---|---|---|
m。 ter stegen | 90 | 85 | 88 | 88 | 187 | FC巴塞罗那 |
h。 lloris | 90 | 83 | 88 | 65 | 188 | 托特纳姆热刺 |
g。 Donnarumma | 90 | 83 | 91 | 79 | 196 | 巴黎圣日耳曼 |
k。 schmeichel | 90 | 78 | 84 | 80 | 189 | 莱斯特城 |
J。 OBLAK | 90 | 92 | 87 | 78 | 188 | atlâticode madrid td> |
alisson | 89 | 86 | 86 | 84 | 191 | 利物浦 |
k。纳瓦斯 | 89 | 84 | 89 | 75 | 185 | 巴黎圣日耳曼 |
m。 neuer | 88 | 88 | 88 | 91 | 193 | fc拜仁mânchen |
Ederson | 88 | 82 | 87 | 93 | 188 | 曼城 |
t。 CORTOIS | 88 | 89 | 84 | 74 | 199 | 皇家马德里CF |
(10行)
(QR12)大多数付费球员(EUR工资):
球员的工资是球员从俱乐部获得的薪水。它们通常每周或每月支付每周一次,并且可以根据多个因素而有所不同,包括球员的年龄,经验,能力和俱乐部的财务状况。
球员工资是职业足球经济学的重要组成部分。对于俱乐部来说,它们可能是巨大的财务负担,但它们也是吸引和保留最佳球员的必要条件。
玩家工资也可能会受到其他因素的影响,例如玩家的合同长度,玩家的图像权利和玩家的表现。
近年来,球员的工资一直在稳步上升。这是由于许多因素,包括足球的商业化增加和人才竞争的日益增加。
结果,球员的工资已成为俱乐部的主要问题。有些俱乐部努力负担得起球员的工资,这导致了财务问题。
SELECT COUNT(*) FROM players WHERE wage_eur IS NULL;
count |
---|
61 |
UPDATE players SET wage_eur = 0 WHERE wage_eur IS NULL;
更新61
SELECT short_name, wage_eur, value_eur, overall, club_position,nationality_name, club_name
FROM players
ORDER BY wage_eur DESC LIMIT 10;
short_name | wage_eur | value_eur | 总体 | club_position | norlantity_name | club_name |
---|---|---|---|---|---|---|
k。 de bruyne | 350000 | 125500000 | 91 | RCM | 比利时 | 曼城 |
k。 Benzema | 350000 | 66000000 | 89 | CF | 法国 | 皇家马德里CF |
l。 Messi | 320000 | 78000000 | 93 | RW | 阿根廷 | 巴黎圣日耳曼 |
casemiro | 310000 | 88000000 | 89 | CDM | 巴西 | 皇家马德里CF |
t。 Kroos | 310000 | 75000000 | 88 | lcm | 德国 | 皇家马德里CF |
r。斯特林 | 290000 | 107500000 | 88 | sub | 英格兰 | 曼城 |
r。 lewandowski | 270000 | 119500000 | 92 | st | 波兰 | fc拜仁mânchen |
Cristiano Ronaldo | 270000 | 45000000 | 91 | st | 葡萄牙 | 曼联 |
m。萨拉赫 td> | 270000 | 101000000 | 89 | RW | 埃及 | 利物浦 |
Neymar Jr | 270000 | 129000000 | 91 | LW td> | 巴西 | 巴黎圣日耳曼 |
(10行)
(QR13)最高评分的播放器(总体):
球员的总体评分是一个代表他们在FIFA中的整体能力的数字。它是根据许多因素(包括其属性,其位置和形式)来计算的。
球员的总评级范围从1到99,其中99个评分是最高的评分。总体评分较高的球员被认为是世界上最好的球员。
玩家的整体评分是一种动态度量,这意味着它可以随着时间的推移而变化。随着玩家获得更多的经验,玩家的属性可以改善。结果,他们的形式也可以改善或下降,因此,球员的总体评分是跟踪他们的进步并查看他们与其他玩家的比较的好方法。
SELECT short_name, overall,age,club_position,club_name
FROM players
ORDER BY overall DESC LIMIT 10;
short_name | 总体 | 年龄 | club_position | club_name |
---|---|---|---|---|
l。 Messi | 93 | 34 | RW | 巴黎圣日耳曼 |
r。 lewandowski | 92 | 32 | st | fc拜仁mânchen |
Cristiano Ronaldo | 91 | 36 | st | 曼联 |
k。 de bruyne | 91 | 30 | RCM | 曼城 |
J。 OBLAK | 91 | 28 | GK | atlâticode madrid td> |
k。 mbappâ | 91 | 22 | st | 巴黎圣日耳曼 |
Neymar Jr | 91 | 29 | LW td> | 巴黎圣日耳曼 |
h。凯恩 | 90 | 27 | st | 托特纳姆热刺 |
n。康德 | 90 | 30 | RCM | 切尔西 |
m。 neuer | 90 | 35 | GK | fc拜仁mânchen |
(10行)
(QR14)选手的首选脚:
球员的首选脚是他们最常用来踢球的脚。这可能会对他们的比赛风格和执行某些技能的能力产生重大影响。
例如,右脚的球员通常会更好地用右脚越过球并用右脚射击。他们也可能会更好地用右脚运球,并用右脚传递。
另一方面,左脚的球员通常会更好地用左脚越过球并用左脚射击。他们的左脚和用左脚传球也可能会更好。
当然,有些球员很振奋,并且可以很好地使用双脚。但是,大多数玩家都有更频繁地使用的首选脚。
玩家的首选脚可以由许多因素决定,包括他们的遗传学,训练和玩耍风格。
最后,玩家的比赛风格也会影响他们喜欢的脚。例如,一个是前锋的球员通常需要擅长双脚射击,因为他们需要能够从进球的双方进球。但是,作为防守者的球员可能只需要擅长使用一只脚,因为他们通常只需要从场地的一侧进行防守。
SELECT DISTINCT preferred_foot, COUNT(*) AS total
FROM players
GROUP BY preferred_foot
ORDER BY total DESC;
preferred_foot | 总计 |
---|---|
右 | 14674 |
左 | 4565 |
(2行)
(QR15)玩家年龄分布是多少?
下面,我们可以指出,足球比赛的球员年龄分布通常是双峰的,在20年代初期达到高峰,在30年代末达到了另一个高峰。这是因为玩家在20多岁的时候倾向于达到自己的身体和技术能力,但如果他们保持健康和健康,他们也可以保持高度的30多岁。
。
双峰分布有几个原因。首先,年轻球员通常比老年球员更有天赋,而且能量更多。这使他们能够跑得更多,更努力地解决并跳高。其次,年轻球员在技术上通常比老球员更有才华,他们具有更好的球控制和传球技能。这使他们能够创造更多的机会并得分更多。
但是,年轻球员通常缺乏经验和决策能力。这可能会导致错误,也可能使它们更容易受伤。随着球员的年龄增长,他们会获得经验和决策能力。这使他们能够在现场做出更好的决定,并且还可以帮助他们避免受伤。
玩家的年龄分布也取决于位置。例如,守门员倾向于比其他球员大,因为他们需要具有高水平的经验和决策能力。防守者也往往比其他球员大,因为他们需要身体强壮并且对比赛有很好的了解。
SELECT DISTINCT age, COUNT(*) total
FROM players GROUP BY age ORDER BY total DESC;
年龄 | 总计 |
---|---|
21 | 1547 |
22 | 1446 |
24 | 1442 |
25 | 1394 |
23 | 1387 |
20 | 1377 |
27 | 1200 |
26 | 1197 |
29 | 1178 |
28 | 1129 |
19 | 1099 |
30 | 901 |
31 | 825 |
18 | 733 |
32 | 634 |
33 | 468 |
34 | 354 |
17 | 271 |
35 | 258 |
36 | 146 |
37 | 105 |
38 | 62 |
39 | 39 |
16 | 20 |
40 | 14 |
41 | 7 |
43 | 3 |
42 | 2 |
54 | 1 |
(29行)
奖金
(QR16)当前玩家年龄是多少(现在):
ALTER TABLE players ALTER COLUMN dob TYPE DATE USING dob::DATE;
Alter Table
SELECT EXTRACT(YEAR FROM AGE(NOW(), dob)) age_now FROM players LIMIT 6;
age_now |
---|
36 |
34 |
38 |
31 |
32 |
24 |
(6行)
ALTER TABLE players ADD age_now INT;
Alter Table
UPDATE players SET age_now = EXTRACT(YEAR FROM AGE(NOW(), dob))
更新19239
SELECT short_name, age AS age_2022, age_now
FROM players
ORDER BY overall DESC LIMIT 8;
short_name | age_2022 | age_now |
---|---|---|
l。 Messi | 34 | 36 |
r。 lewandowski | 32 | 34 |
J。 OBLAK | 28 | 30 |
k。 de bruyne | 30 | 32 |
Neymar Jr | 29 | 31 |
Cristiano Ronaldo | 36 | 38 |
k。 mbappâ | 22 | 24 |
h。凯恩 | 27 | 30 |
(8行)
亮点和结论
在FIFA数据集的EDA中,我们探索了各种功能,包括玩家年龄,整体评分,首选脚,工资和最佳位置。我们发现数据中有许多有趣的趋势和关系。例如,我们发现:
- 玩家的年龄分布是双峰的,在20年代初达到高峰,另外30年代末。
- 扮演角色/位置的最佳球员通常具有很高的技术能力/素质,并且可以影响他们的团队整体表现。
- 由于他们的形式/表现和人肢的总体评级高得分,这也可以从他们如何影响团队表现更好。这是跟踪球员进步的好方法。
- 最后,球员的工资每年都在飞涨,这是足球俱乐部的主要问题。有些俱乐部努力负担得起球员的工资,这导致了财务问题。
通过此EDA,我们已经了解了有关SQL中出口数据分析的许多知识。例如,我们学会了如何:
- 使用SQL查询探索数据集。
- 确定数据集中的趋势和关系。
- 关于数据集的测试假设。
- 我们还了解到,EDA是一种强大的工具,可用于洞悉数据集。通过探索数据集,我们可以从简单地查看数据来确定趋势和关系并不明显。这些信息可用于对数据做出更好的决定,或者构建更好的模型。
该项目的下一步是对数据进行更深入的分析。这可能涉及使用统计测试来测试我们的假设,或建立机器学习模型以预测玩家的性能。
谢谢你这么长的时间....
如果您喜欢阅读的内容,请考虑订阅我的新闻通讯