SQL的探索性数据分析
#python #sql #database #eventdriven

对FIFA22播放器数据集的分析

image from unsplash

探索性数据分析(EDA)是数据分析过程中关键的第一步。它侵入了各种技术,工具和可视化的使用,以了解数据集的结构,模式和特征。 EDA的主要目标是从数据中获得见解,识别模式和趋势,检测异常并准备数据以进行进一步的分析和建模。

FIFA22数据集是从FIFA的流行足球视频游戏中提取的。每年,都会为世界上所有最大比赛的所有球员发行一款新游戏,具有更新的特征和技能。这意味着在20152022之间传递了玩家的最新特征和技能。玩家特征可以在变量中找到:播放器nameageheight in centimetersweight in kilogramweight in kilogramnationalityplayer player positionpreferred footpreferred footinternational reputationcontract duration等。现场播放器技能分为六个子类别,即passingdefendingphysicalphysicalshootingpace
对于守门员,子类别是kickinghandlingshootingreflexesreflexesdivingspeed。子类别都具有子类别本身。此外,每个玩家在游戏中都有overall评分和potential评分。所有评分均在199范围内,其中最低为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 日期
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â 97 96 96 LW 西班牙
m。 Diaby 96 92 94 rm 法国
d。詹姆斯 96 95 95 sub 威尔士
a。戴维斯 96 96 96 lb 加拿大
a。 hakimi 95 95 95 RB 摩洛哥
VinaâciusJr .. 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。工作 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
s。 Coates 94 80 87 92 运动CP
c。 luyida 94 73 85 91 Galatasaray SK
k。 Koulibaly 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
didier andrâ1â1⁄cumattion \ reno assprill
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 48 95 63 67 Hertha BSC
安德鲁·罗伯逊(Andrew Robertson) 65 95 76 64 利物浦
nicolâbarella 69 95 78 68
!⣣ 71 95 73 68 Coens
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。萨拉赫 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
s。 ag ero 89 93 90 78 86 FC巴塞罗那
k。 mbappâ 88 93 86 72 93 巴黎圣日耳曼
h。儿子 87 88 88 68 87 托特纳姆热刺
m。萨拉赫 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
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 92 86 92 90 83 利物浦
râben dias 90 85 89 85 92 曼城
m。 ¼Kriniar 90 82 88 86 84
k。 Koulibaly 90 86 88 85 83 napoli
s。 savi⧠90 83 86 87 86 atlâticode madrid
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重要。例如,具有高守门员的守门员可能能够抓住球并保持球的良好状态,但是如果他们没有良好的反射,他们将无法节省大量力量的投篮。

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
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。萨拉赫 270000 101000000 89 RW 埃及 利物浦
Neymar Jr 270000 129000000 91 LW 巴西 巴黎圣日耳曼

(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
k。 mbappâ 91 22 st 巴黎圣日耳曼
Neymar Jr 91 29 LW 巴黎圣日耳曼
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是一种强大的工具,可用于洞悉数据集。通过探索数据集,我们可以从简单地查看数据来确定趋势和关系并不明显。这些信息可用于对数据做出更好的决定,或者构建更好的模型。



该项目的下一步是对数据进行更深入的分析。这可能涉及使用统计测试来测试我们的假设,或建立机器学习模型以预测玩家的性能。



谢谢你这么长的时间....

如果您喜欢阅读的内容,请考虑订阅我的新闻通讯

GitHub上找到我,Twitter