Table of contents
- Introduction
- Import the Required Libraries
- VISUAL ANALYSIS OF FIFA 22 PLAYER RATINGS
- WordCloud of Nationalities and Clubs.
- Top 20 Best FIFA 22 Players Based on Overall Rating
- Players Preferred foot
- Top 10 Highest Paid Players in FIFA 22 and their Respective Nationalities
- Top 10 Highest Paid Players and their Clubs
- Player Height Distribution
- Degrees of Players and Skill Moves Rating
- Relationship between Player Potential and Wage
- Relationship between Age and Wage
- Relationship between Player Overall and Age
- Descriptive Analysis of FIFA 22 Player Ratings
- Who are the top 10 fastest players?
- Who are the top 10 slowest players?
- Who are the Top 10 Tallest Players?
- Who are the top 10 shortest players?
- Who are the top 10 heaviest players?
- Who are the top 10 oldest players?
- Who are the top 10 youngest players?
- Top 10 Players Based on Defensive Awareness Rating
- Top 10 Players Based on their Long Passing Rating
- Top 10 Players Based on the Dribbling Rating
- Top 10 Players Based on their Crossing Ability
- Top Rated Players based on their Wages
- Top 10 Best Goalkeepers
- Summary
Introduction
FIFA 22 is a football simulation video game published by Electronic Arts. It is the 29th installment in the FIFA series, and was released worldwide on 1 October 2021 for Microsoft Windows, Nintendo Switch, PlayStation 4, PlayStation 5, Xbox One and Xbox Series X/S.Wikipedia
In this project I tried to answer questions such as the who is highest paid player, best player, fastest player, best finisher using descriptive and visual analysis.
I used Google Colab to carry out this project.
The FIFA 22 Dataset I used can be found at Kaggle.
The notebook can be found on my GitHub.
Import the Required Libraries
import numpy as np
import pandas as pd
import os
import seaborn as sns
from scipy import stats
import missingno as msno
import math
%matplotlib inline
import matplotlib as mpl
import matplotlib.pyplot as plt
from matplotlib import style
sns.set(style='ticks', color_codes=True)
sns.set(style='darkgrid')
import plotly.express as px
import warnings
warnings.filterwarnings(action="ignore", message="^internal gelsd")
warnings.filterwarnings('always')
warnings.filterwarnings('ignore')
Installing other requirements like kaggle for loading the dataset
! pip install wordcloud
Requirement already satisfied: wordcloud in /usr/local/lib/python3.7/dist-packages (1.5.0)
Requirement already satisfied: numpy>=1.6.1 in /usr/local/lib/python3.7/dist-packages (from wordcloud) (1.21.6)
Requirement already satisfied: pillow in /usr/local/lib/python3.7/dist-packages (from wordcloud) (7.1.2)
from wordcloud import WordCloud
Installing the kaggle libraries for interacting with the kaggle api and uploading my kaggle api key to my environment.
! pip install -q kaggle
from google.colab import files
files.upload()
! mkdir ~/.kaggle
! cp kaggle.json ~/.kaggle/
Downloading the kaggle fifa dataset into my colab environment
! kaggle datasets download -d stefanoleone992/fifa-22-complete-player-dataset
/root/.kaggle/kaggle.json'
Downloading fifa-22-complete-player-dataset.zip to /content
82% 89.0M/109M [00:00<00:00, 105MB/s]
100% 109M/109M [00:01<00:00, 110MB/s]
Unzipping the contents of the zip dataset into our environment. In this case I'll be working with the 'players_22.csv' file.
! unzip fifa-22-complete-player-dataset.zip
Archive: fifa-22-complete-player-dataset.zip
inflating: Career Mode female player datasets - FIFA 16-22.xlsx
inflating: Career Mode player datasets - FIFA 15-22.xlsx
inflating: female_players_16.csv
inflating: female_players_17.csv
inflating: female_players_18.csv
inflating: female_players_19.csv
inflating: female_players_20.csv
inflating: female_players_21.csv
inflating: female_players_22.csv
inflating: players_15.csv
inflating: players_16.csv
inflating: players_17.csv
inflating: players_18.csv
inflating: players_19.csv
inflating: players_20.csv
inflating: players_21.csv
inflating: players_22.csv
Reading the csv file with pandas and displaying the first 5 rows of the dataset
fifa = pd.read_csv('players_22.csv')
fifa.head()
5 rows × 110 columns
Getting the column names in the dataset.
print(list(fifa.columns))
['sofifa_id', 'player_url', 'short_name', 'long_name', 'player_positions', 'overall', 'potential', 'value_eur', 'wage_eur', 'age', 'dob', 'height_cm', 'weight_kg', 'club_team_id', 'club_name', 'league_name', 'league_level', 'club_position', 'club_jersey_number', 'club_loaned_from', 'club_joined', 'club_contract_valid_until', 'nationality_id', 'nationality_name', 'nation_team_id', 'nation_position', 'nation_jersey_number', 'preferred_foot', 'weak_foot', 'skill_moves', 'international_reputation', 'work_rate', 'body_type', 'real_face', 'release_clause_eur', 'player_tags', 'player_traits', 'pace', 'shooting', 'passing', 'dribbling', 'defending', 'physic', 'attacking_crossing', 'attacking_finishing', 'attacking_heading_accuracy', 'attacking_short_passing', 'attacking_volleys', 'skill_dribbling', 'skill_curve', 'skill_fk_accuracy', 'skill_long_passing', 'skill_ball_control', 'movement_acceleration', 'movement_sprint_speed', 'movement_agility', 'movement_reactions', 'movement_balance', 'power_shot_power', 'power_jumping', 'power_stamina', 'power_strength', 'power_long_shots', 'mentality_aggression', 'mentality_interceptions', 'mentality_positioning', 'mentality_vision', 'mentality_penalties', 'mentality_composure', 'defending_marking_awareness', 'defending_standing_tackle', 'defending_sliding_tackle', 'goalkeeping_diving', 'goalkeeping_handling', 'goalkeeping_kicking', 'goalkeeping_positioning', 'goalkeeping_reflexes', 'goalkeeping_speed', 'ls', 'st', 'rs', 'lw', 'lf', 'cf', 'rf', 'rw', 'lam', 'cam', 'ram', 'lm', 'lcm', 'cm', 'rcm', 'rm', 'lwb', 'ldm', 'cdm', 'rdm', 'rwb', 'lb', 'lcb', 'cb', 'rcb', 'rb', 'gk', 'player_face_url', 'club_logo_url', 'club_flag_url', 'nation_logo_url', 'nation_flag_url']
Turning the CSV file, 'players_22.csv' into a pandas Dataframe.
fifa_df=pd.DataFrame(fifa)
Setting the new columns that will be used for analysis.
new_columns = ['long_name', 'player_positions', 'overall', 'potential', 'value_eur', 'wage_eur', 'age', 'dob', 'height_cm', 'weight_kg', 'club_name', 'league_name', 'league_level', 'club_position', 'club_loaned_from', 'club_joined', 'club_contract_valid_until', 'nationality_name', 'nation_team_id', 'nation_position', 'preferred_foot', 'weak_foot', 'skill_moves', 'international_reputation', 'work_rate', 'body_type', 'real_face', 'release_clause_eur', 'player_tags', 'player_traits', 'pace', 'shooting', 'passing', 'dribbling', 'defending', 'physic', 'attacking_crossing', 'attacking_finishing', 'attacking_heading_accuracy', 'attacking_short_passing', 'attacking_volleys', 'skill_dribbling', 'skill_curve', 'skill_fk_accuracy', 'skill_long_passing', 'skill_ball_control', 'movement_acceleration', 'movement_sprint_speed', 'movement_agility', 'movement_reactions', 'movement_balance', 'power_shot_power', 'power_jumping', 'power_stamina', 'power_strength', 'power_long_shots', 'mentality_aggression', 'mentality_interceptions', 'mentality_positioning', 'mentality_vision', 'mentality_penalties', 'mentality_composure', 'defending_marking_awareness', 'defending_standing_tackle', 'defending_sliding_tackle', 'goalkeeping_diving', 'goalkeeping_handling', 'goalkeeping_kicking', 'goalkeeping_positioning', 'goalkeeping_reflexes', 'goalkeeping_speed','ls', 'st', 'rs', 'lw', 'lf', 'cf', 'rf', 'rw', 'lam', 'cam', 'ram', 'lm', 'lcm', 'cm', 'rcm', 'rm', 'lwb', 'ldm', 'cdm', 'rdm', 'rwb', 'lb', 'lcb', 'cb', 'rcb', 'rb', 'gk']
fifa_df=fifa[new_columns]
Getting the first 5 rows of the Dataset.
fifa_df.head()
long_name | player_positions | overall | potential | value_eur | wage_eur | age | dob | height_cm | weight_kg | ... | ldm | cdm | rdm | rwb | lb | lcb | cb | rcb | rb | gk | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | Lionel Andrés Messi Cuccittini | RW, ST, CF | 93 | 93 | 78000000.0 | 320000.0 | 34 | 1987-06-24 | 170 | 72 | ... | 64+3 | 64+3 | 64+3 | 66+3 | 61+3 | 50+3 | 50+3 | 50+3 | 61+3 | 19+3 |
1 | Robert Lewandowski | ST | 92 | 92 | 119500000.0 | 270000.0 | 32 | 1988-08-21 | 185 | 81 | ... | 66+3 | 66+3 | 66+3 | 64+3 | 61+3 | 60+3 | 60+3 | 60+3 | 61+3 | 19+3 |
2 | Cristiano Ronaldo dos Santos Aveiro | ST, LW | 91 | 91 | 45000000.0 | 270000.0 | 36 | 1985-02-05 | 187 | 83 | ... | 59+3 | 59+3 | 59+3 | 63+3 | 60+3 | 53+3 | 53+3 | 53+3 | 60+3 | 20+3 |
3 | Neymar da Silva Santos Júnior | LW, CAM | 91 | 91 | 129000000.0 | 270000.0 | 29 | 1992-02-05 | 175 | 68 | ... | 63+3 | 63+3 | 63+3 | 67+3 | 62+3 | 50+3 | 50+3 | 50+3 | 62+3 | 20+3 |
4 | Kevin De Bruyne | CM, CAM | 91 | 91 | 125500000.0 | 350000.0 | 30 | 1991-06-28 | 181 | 70 | ... | 80+3 | 80+3 | 80+3 | 79+3 | 75+3 | 69+3 | 69+3 | 69+3 | 75+3 | 21+3 |
5 rows × 98 columns
VISUAL ANALYSIS OF FIFA 22 PLAYER RATINGS
In this section I used bar charts, pie charts, scatter plots etc to carry out visual analysis and gain insight from the dataset.
fig, ax = plt.subplots(figsize=(22,20))
sns.set_context('poster')
corr = fifa_df.corr()
sns.heatmap(corr, xticklabels=corr.columns, yticklabels=corr.columns,cmap='Blues')
ax.set_title('Collinearity of FIFA 2022 Attributes')
plt.savefig('cormap.png')
WordCloud of Nationalities and Clubs.
A word cloud is a collection, or cluster, of words depicted in different sizes. The bigger and bolder the word appears, the more often it’s mentioned within a given text and the more important it is.
Word Cloud of Nationalities
d_frame = fifa_df.nationality_name
plt.subplots(figsize=(15,15))
wordcloud = WordCloud(
background_color='white',
width = 2000,
height = 1200
).generate(" ".join(d_frame))
plt.imshow(wordcloud)
plt.axis('off')
Names of Most frequently mentioned Countries
fifa_df.groupby("nationality_name").long_name.count().sort_values(ascending=False).head(10)/100
nationality_name
England 17.19
Germany 12.14
Spain 10.86
France 9.80
Argentina 9.60
Brazil 8.97
Japan 5.46
Netherlands 4.39
United States 4.13
Poland 4.03
Name: long_name, dtype: float64
Word Cloud of Club Names
# Word Cloud of Club Names
fifa_df['club_name']= fifa_df['club_name'].apply(str) # Convert Club names to string because some clubs have numbers in their name e.g Schalke 04
d_frame = fifa_df.club_name
plt.subplots(figsize=(15,15))
wordcloud = WordCloud(
background_color='white',
width = 2000,
height = 1200
).generate(" ".join(d_frame))
plt.imshow(wordcloud)
plt.axis('off')
Occurence of Club Names
fifa_df.groupby("club_name").long_name.count().sort_values(ascending=False).head(10)/100
club_name
Real Betis Balompié 0.33
ESTAC Troyes 0.33
Newcastle United 0.33
RCD Espanyol de Barcelona 0.33
RCD Mallorca 0.33
Arsenal 0.33
Brighton & Hove Albion 0.33
Villarreal CF 0.33
Brentford 0.33
Name: long_name, dtype: float64
Top 20 Best FIFA 22 Players Based on Overall Rating
Overall = fifa_df["overall"]
Player_name = fifa_df["long_name"]
data = pd.DataFrame({'long_name': Player_name,'overall':Overall})
x = data.long_name.head(20)
y = data.overall.head(20)
sns.set_context('talk')
plt.figure(figsize=(15,10))
ax= sns.barplot(x=y, y=x,palette ='Blues_r')
plt.xticks(rotation= 90)
plt.xlabel('Overall', size = 20)
plt.ylabel('Name', size = 20 )
plt.title('Best Players in FIFA 22 Based on Overall Rating') # title
plt.show()
plt.savefig('Top20.png')
for p in ax.patches:
ax.annotate(str(p.get_height()), (p.get_x()-0.1, p.get_height()+30))
It can be seen from the chart that Lionel Messi who currently plays for Paris Saint German is the best player in FIFA 22.
Players Preferred foot
preferred_foot_labels = fifa_df["preferred_foot"].value_counts().index
preferred_foot_values = fifa_df["preferred_foot"].value_counts().values
explode = (0, 0.1) # used to separate a slice of cake
plt.figure(figsize = (7,7))
plt.pie(preferred_foot_values, labels=preferred_foot_labels,explode=explode, autopct='%1.2f%%')
plt.title('Football Players Preferred Feet',color = 'darkblue',fontsize = 15)
plt.legend()
#plt.show()
plt.savefig('Foot Piechart.jpg')
It can be seen from the pie chart that a very high percentage of players are right-footed.
Top 10 Highest Paid Players in FIFA 22 and their Respective Nationalities
# TOp 10 Players with the highest wages with Nationality
plt.figure(figsize=(15,8))
player_name = fifa_df.nlargest(10, ['wage_eur']).set_index('long_name')
sns.barplot(player_name['wage_eur'], player_name.index, ci = None, hue = player_name['nationality_name'],palette="deep")
plt.xlabel('Total wages')
It can be seen from the bar chart that Kevin De Bruyne who plays for Manchester City FC in the English Premier League is the highest paid player in FIFA 22.
Top 10 Highest Paid Players and their Clubs
plt.figure(figsize=(15,8))
player_name = fifa_df.nlargest(10, ['wage_eur']).set_index('long_name')
sns.barplot(player_name['wage_eur'], player_name.index, ci = None, hue = player_name['club_name'],palette="deep")
plt.xlabel('Total wages')
Text(0.5, 0, 'Total wages')
Player Height Distribution
# Player Height Distribution
sns.set_style('darkgrid')
sns.set_context('talk')
plt.figure(figsize=(26,14))
ax = fifa_df.groupby('height_cm')['long_name'].count().plot.bar()
plt.title('Number of Players')
plt.xticks(fontsize = 12,rotation=0)
for p in ax.patches:
ax.annotate(str(p.get_height()), (p.get_x()-0.1, p.get_height()+30))
plt.savefig('heightplot.png')
This chart shows that most player heights average around 180cm in FIFA 22.
Degrees of Players and Skill Moves Rating
sns.set_context('paper')
skill_moves_labels = fifa_df["skill_moves"].value_counts().index
skill_moves_values = fifa_df["skill_moves"].value_counts().values
colors = ['orange','indigo','grey','violet','red']
plt.figure(figsize = (6,6))
circle = plt.Circle((0,0),0.3,color = "white")
plt.pie(skill_moves_values, labels = skill_moves_labels, colors = colors)
p = plt.gcf()
p.gca().add_artist(circle) # we add the hole to the chart
plt.title("Degrees of Players and Skill Moves Rating")
plt.legend()
plt.savefig('DonutChartSkillMove.png')
Skill moves are special tricks a player can execute in order to beat his man i.e get past a player or just to taunt a player. A player having a rating of 5 for skill moves means the player can execute all the skills in the game. It can be seen though that there is a very little amount of players who have 5 star skill rating in FIFA 22.
Relationship between Player Potential and Wage
plt.figure(figsize=(7, 5))
ax = sns.scatterplot(x =fifa_df['potential'], y = fifa_df['wage_eur'])
plt.xlabel("Potential")
plt.ylabel("Wage EUR")
plt.title("Potential & Wage", fontsize = 18)
plt.show()
plt.savefig('chart1.png')
It can be seen from this scatter plot that player wage increases as player potential increases.
Relationship between Age and Wage
plt.figure(figsize=(7, 5))
ax = sns.scatterplot(x =fifa_df['age'], y = fifa_df['wage_eur'])
plt.xlabel("Age")
plt.ylabel("Wage EUR")
plt.title("Age & Wage", fontsize = 18)
plt.show()
plt.savefig('chart2.png')
Relationship between Player Overall and Age
plt.figure(figsize=(7, 5))
ax = sns.scatterplot(x =fifa_df['overall'], y = fifa_df['age'])
plt.xlabel("Overall")
plt.ylabel("Age")
plt.title("Overall & Age", fontsize = 18)
plt.show()
plt.savefig('chart3.png')
Descriptive Analysis of FIFA 22 Player Ratings
In this section I used the dataset to carry out descriptive analysis and answer questions like who the fastest player is, the best finisher, best player etc.
Who are the top 10 fastest players?
# fastest players
player_name = fifa_df[["long_name",'age',"player_positions",'nationality_name','movement_sprint_speed',"movement_acceleration"]].nlargest(10, ['movement_acceleration']).set_index('long_name')
player_name
age | player_positions | nationality_name | movement_sprint_speed | movement_acceleration | |
---|---|---|---|---|---|
long_name | |||||
Kylian Mbappé Lottin | 22 | ST, LW | France | 97 | 97 |
Adama Traoré Diarra | 25 | RW, RWB | Spain | 96 | 97 |
Alphonso Boyle Davies | 20 | LB, LM | Canada | 96 | 96 |
Moussa Diaby | 21 | LW, RW | France | 92 | 96 |
Daniel James | 23 | RM, LM | Wales | 95 | 96 |
Raheem Sterling | 26 | LW, RW | England | 88 | 95 |
Achraf Hakimi Mouh | 22 | RB, RWB | Morocco | 95 | 95 |
Vinícius José Paixão de Oliveira Júnior | 20 | LW | Brazil | 95 | 95 |
Carlos Uriel Antuna Romero | 23 | LM, RM, RW | Mexico | 90 | 95 |
Chidera Ejuke | 23 | LM, RM | Nigeria | 93 | 95 |
It can be seen that Kylian Mbappe Lottin of Paris Saint German is the fastest player in FIFA 22. Personally I feel using PSG is like cheating because they have so many good players:laughing:
Who are the top 10 slowest players?
# Top 10 Slowest Players
player_name = fifa_df[["long_name",'age',"player_positions",'nationality_name','movement_sprint_speed',"movement_acceleration"]].nsmallest(10, ['movement_acceleration']).set_index('long_name')
player_name
age | player_positions | nationality_name | movement_sprint_speed | movement_acceleration | |
---|---|---|---|---|---|
long_name | |||||
Ryan Scott | 25 | GK | Australia | 20 | 14 |
Romain Lejeune | 30 | GK | France | 17 | 14 |
이윤오 Yun Oh Lee | 22 | GK | Korea Republic | 23 | 14 |
Dominik Greif | 24 | GK | Slovakia | 22 | 15 |
Nathael Walter Silbeira Caeiro | 25 | GK | Brazil | 16 | 15 |
Kevin Broll | 25 | GK | Germany | 15 | 15 |
Tim Rönning | 22 | GK | Sweden | 21 | 15 |
Đorđe Nikolić | 24 | GK | Serbia | 31 | 15 |
Aynsley Pears | 23 | GK | England | 16 | 15 |
Manuel Alexander Heredia Rojas | 35 | GK | Peru | 27 | 15 |
It can be seen that the slowest players in the game are all Goalkeepers.
Who are the Top 10 Tallest Players?
# Tallest Players
player_name = fifa_df[["long_name",'age',"player_positions",'nationality_name','height_cm']].nlargest(10, ['height_cm']).set_index('long_name')
player_name
age | player_positions | nationality_name | height_cm | |
---|---|---|---|---|
long_name | ||||
Tomáš Holý | 29 | GK | Czech Republic | 206 |
Pape-Alioune Ndiaye | 23 | CB, CDM | France | 203 |
Fejsal Mulić | 26 | ST, RM | Serbia | 203 |
Andries Noppert | 27 | GK | Netherlands | 203 |
Aaron James Chapman | 31 | GK | England | 203 |
Vanja Milinković-Savić | 24 | GK | Serbia | 202 |
Kjell Scherpen | 21 | GK | Netherlands | 202 |
Nedeljko Stojišić | 23 | GK | Serbia | 202 |
Cottrell Ezekwem | 22 | CB | Germany | 202 |
Massamba Ndiaye | 19 | GK | Senegal | 202 |
Unsurprisingly it can be seen that the tallest players are mostly Goalkeepers. Height is a very important trait of being a goalkeeper.
Who are the top 10 shortest players?
# Shortest Players
player_name = fifa_df[["long_name",'age',"player_positions",'nationality_name','height_cm']].nsmallest(10, ['height_cm']).set_index('long_name')
player_name
age | player_positions | nationality_name | height_cm | |
---|---|---|---|---|
long_name | ||||
Marco Antonio García Robledo | 21 | CM | Mexico | 155 |
Cristian Nahuel Barrios | 23 | LM, LW, CF | Argentina | 156 |
Leandro Gastón Paiva Santurión | 27 | RM, CM, LM | Uruguay | 156 |
Yeferson Julio Soteldo Martínez | 24 | LM, RM, CAM | Venezuela | 158 |
Maximiliano Nicol Moralez | 34 | CAM, CM | Argentina | 158 |
Chanathip Songkrasin | 27 | CF | Thailand | 158 |
Joshua Nisbet | 22 | RM, CM, CDM | Australia | 158 |
Josué Misael Domínguez González | 21 | CAM, LM | Mexico | 159 |
Latif Blessing | 24 | CM, RB | Ghana | 160 |
Erhun Aksel Öztümer | 30 | CAM | England | 160 |
Who are the top 10 heaviest players?
# Top 10 Heaviest Players
player_name = fifa_df[["long_name",'age',"player_positions",'nationality_name','weight_kg']].nlargest(10, ['weight_kg']).set_index('long_name')
player_name
age | player_positions | nationality_name | weight_kg | |
---|---|---|---|---|
long_name | ||||
Saheed Adebayo Akinfenwa | 39 | ST | England | 110 |
Christopher Seitz | 34 | GK | United States | 107 |
Lukas Watkowiak | 25 | GK | Germany | 105 |
Mamadou Obbi Oularé | 25 | ST | Belgium | 104 |
Lars Unnerstall | 30 | GK | Germany | 103 |
Bilal Abdul Hamid | 30 | GK | United States | 102 |
Tomáš Holý | 29 | GK | Czech Republic | 102 |
Eirik Holmen Johansen | 28 | GK | Norway | 102 |
Asmir Begović | 34 | GK | Bosnia and Herzegovina | 101 |
Tomáš Chorý | 26 | ST | Czech Republic | 101 |
It can be seen striker for League One club Wycombe Wanderers, Saheed Adebayo Akinfenwa weighs the most in FIFA 22.
Who are the top 10 oldest players?
player_name = fifa_df[["long_name","player_positions",'nationality_name','age']].nlargest(10, ['age']).set_index('long_name')
player_name
player_positions | nationality_name | age | |
---|---|---|---|
long_name | |||
三浦 知良 | ST | Japan | 54 |
Gianluigi Buffon | GK | Italy | 43 |
Cristian David Lucchetti | GK | Argentina | 43 |
中村 俊輔 | CAM, CF, RW | Japan | 43 |
Daniel Vaca Tasca | GK | Bolivia | 42 |
Kevin Keith Ellison | LM, ST | England | 42 |
Sebastián Alberto Torrico | GK | Argentina | 41 |
Artur Boruc | GK | Poland | 41 |
Paulo César Da Silva Barrios | CB | Paraguay | 41 |
Stojan Lukić | GK | Bosnia and Herzegovina | 41 |
It can be seen that Kazuyoshi Miura is the oldest player in FIFA 22. Miura holds the records for being the oldest goalscorer in the J-League, the footballer with the world's longest professional career and, as of 2022, is the oldest professional footballer in the world at 55.He also holds the possibly unique distinction of having played professional football in five separate decades (1980s–2020s). Wikipedia
Who are the top 10 youngest players?
# Youngest Players
player_name = fifa_df[["long_name","player_positions",'nationality_name','age']].nsmallest(10, ['age']).set_index('long_name')
player_name
player_positions | nationality_name | age | |
---|---|---|---|
long_name | |||
Pablo Martín Páez Gavira | CM | Spain | 16 |
Valentín Barco | LB | Argentina | 16 |
Alexios Kalogeropoulos | CB | Greece | 16 |
Pelayo González Rey | CM | Spain | 16 |
Rav van den Berg | CB | Netherlands | 16 |
Alexandru Musi | LW, CAM | Romania | 16 |
Thierry Small | LB | England | 16 |
Alfie Devine | CM, CDM | England | 16 |
Zak Emmerson | CF, ST | England | 16 |
Filip Bundgaard Kristensen | RM, ST | Denmark | 16 |
Top 10 Players Based on Defensive Awareness Rating
player_name = fifa_df[["long_name","defending_marking_awareness","player_positions",'age','nationality_name']].nlargest(10, ['defending_marking_awareness']).set_index('long_name')
player_name
defending_marking_awareness | player_positions | age | nationality_name | |
---|---|---|---|---|
long_name | ||||
Giorgio Chiellini | 93 | CB | 36 | Italy |
Virgil van Dijk | 92 | CB | 29 | Netherlands |
N'Golo Kanté | 90 | CDM, CM | 30 | France |
Rúben dos Santos Gato Alves Dias | 90 | CB | 24 | Portugal |
Mats Hummels | 90 | CB | 32 | Germany |
Kalidou Koulibaly | 90 | CB | 30 | Senegal |
Milan Škriniar | 90 | CB | 26 | Slovakia |
Stefan Savić | 90 | CB | 30 | Montenegro |
Marcos Aoás Corrêa | 89 | CB, CDM | 27 | Brazil |
Stefan de Vrij | 89 | CB | 29 | Netherlands |
Giorgio Chiellini who plays for Juventus in Italy has the best Defensive Marking rating in FIFA 22.
Top 10 Players Based on their Long Passing Rating
player_name = fifa_df[["skill_long_passing","long_name","attacking_short_passing","power_stamina",'age','nationality_name','weight_kg','player_positions']].nlargest(10, ['skill_long_passing']).set_index('long_name')
player_name
skill_long_passing | attacking_short_passing | power_stamina | age | nationality_name | weight_kg | player_positions | |
---|---|---|---|---|---|---|---|
long_name | |||||||
Kevin De Bruyne | 93 | 94 | 89 | 30 | Belgium | 70 | CM, CAM |
Toni Kroos | 93 | 93 | 75 | 31 | Germany | 76 | CM |
Paul Pogba | 92 | 88 | 77 | 28 | France | 84 | CM, LM |
Lionel Andrés Messi Cuccittini | 91 | 91 | 72 | 34 | Argentina | 72 | RW, ST, CF |
Joshua Walter Kimmich | 90 | 87 | 94 | 26 | Germany | 75 | CDM, RB |
Trent Alexander-Arnold | 90 | 86 | 88 | 22 | England | 69 | RB |
Daniel Parejo Muñoz | 90 | 92 | 78 | 32 | Spain | 74 | CM |
Luis Alberto Romero Alconchel | 90 | 92 | 75 | 28 | Spain | 74 | CAM, CM, CF |
Christian Dannemann Eriksen | 90 | 89 | 59 | 29 | Denmark | 76 | CM, CAM |
Luka Modrić | 89 | 91 | 83 | 35 | Croatia | 66 | CM |
Kevin De Bruyne is a mid field all rounder and its not surprising to see that he has the best long pass rating in FIFA 22.
Top 10 Players Based on the Dribbling Rating
player_name = fifa_df[["dribbling","long_name","skill_ball_control","movement_agility",'age','nationality_name','weight_kg','player_positions']].nlargest(10, ['dribbling']).set_index('long_name')
player_name
dribbling | skill_ball_control | movement_agility | age | nationality_name | weight_kg | player_positions | |
---|---|---|---|---|---|---|---|
long_name | |||||||
Lionel Andrés Messi Cuccittini | 95.0 | 96 | 91 | 34 | Argentina | 72 | RW, ST, CF |
Neymar da Silva Santos Júnior | 94.0 | 95 | 96 | 29 | Brazil | 68 | LW, CAM |
Kylian Mbappé Lottin | 92.0 | 91 | 92 | 22 | France | 73 | ST, LW |
Marco Verratti | 91.0 | 92 | 91 | 28 | Italy | 60 | CM, CAM |
Jadon Sancho | 91.0 | 90 | 91 | 21 | England | 76 | RM, CF, LM |
Bernardo Mota Veiga de Carvalho e Silva | 91.0 | 90 | 94 | 26 | Portugal | 64 | CAM, CM, RW |
Mohamed Salah Ghaly | 90.0 | 89 | 91 | 29 | Egypt | 71 | RW |
Paulo Bruno Exequiel Dybala | 90.0 | 93 | 92 | 27 | Argentina | 75 | CF, CAM |
Thiago Alcântara do Nascimento | 90.0 | 92 | 91 | 30 | Spain | 70 | CM, CDM |
Lorenzo Insigne | 90.0 | 93 | 89 | 30 | Italy | 59 | LW, CF |
Lionel Messi who many people consider the GOAT(Greatest of All Time) is the best dribbler in FIFA 22.
Top 10 Players Based on their Crossing Ability
# Best Crosser of the Ball
player_name = fifa_df[["attacking_crossing","long_name","overall",'age','nationality_name','club_name']].nlargest(10, ['attacking_crossing']).set_index('long_name')
player_name
attacking_crossing | overall | age | nationality_name | club_name | |
---|---|---|---|---|---|
long_name | |||||
Kevin De Bruyne | 94 | 91 | 30 | Belgium | Manchester City |
Trent Alexander-Arnold | 92 | 87 | 22 | England | Liverpool |
Joshua Walter Kimmich | 91 | 89 | 26 | Germany | FC Bayern München |
Filip Kostić | 91 | 84 | 28 | Serbia | Eintracht Frankfurt |
Pedro León Sánchez Gil | 91 | 78 | 34 | Spain | CF Fuenlabrada |
Philipp Martin Max | 90 | 80 | 27 | Germany | PSV |
James David Rodríguez Rubio | 89 | 81 | 29 | Colombia | Everton |
James Ward-Prowse | 89 | 81 | 26 | England | Southampton |
Toni Kroos | 88 | 88 | 31 | Germany | Real Madrid CF |
Ángel Fabián Di María Hernández | 88 | 87 | 33 | Argentina | Paris Saint-Germain |
KDB again 😀
Best Strikers based on their Finishing Ability
player_name = fifa_df[['attacking_finishing','mentality_penalties', 'mentality_composure','pace', 'shooting',"long_name","overall",'age','nationality_name','club_name']].nlargest(10, ['attacking_finishing']).set_index('long_name')
player_name
attacking_finishing | mentality_penalties | mentality_composure | pace | shooting | overall | age | nationality_name | club_name | |
---|---|---|---|---|---|---|---|---|---|
long_name | |||||||||
Lionel Andrés Messi Cuccittini | 95 | 75 | 96 | 85.0 | 92.0 | 93 | 34 | Argentina | Paris Saint-Germain |
Robert Lewandowski | 95 | 90 | 88 | 78.0 | 92.0 | 92 | 32 | Poland | FC Bayern München |
Cristiano Ronaldo dos Santos Aveiro | 95 | 88 | 95 | 87.0 | 94.0 | 91 | 36 | Portugal | Manchester United |
Harry Kane | 94 | 91 | 91 | 70.0 | 91.0 | 90 | 27 | England | Tottenham Hotspur |
Erling Braut Haaland | 94 | 76 | 84 | 89.0 | 91.0 | 88 | 20 | Norway | Borussia Dortmund |
Kylian Mbappé Lottin | 93 | 79 | 88 | 97.0 | 88.0 | 91 | 22 | France | Paris Saint-Germain |
Luis Alberto Suárez Díaz | 93 | 83 | 87 | 72.0 | 90.0 | 88 | 34 | Uruguay | Atlético de Madrid |
Sergio Leonel Agüero del Castillo | 93 | 75 | 91 | 71.0 | 89.0 | 87 | 33 | Argentina | FC Barcelona |
Romelu Lukaku Menama | 92 | 88 | 86 | 84.0 | 87.0 | 88 | 28 | Belgium | Chelsea |
Mohamed Salah Ghaly | 91 | 86 | 90 | 90.0 | 87.0 | 89 | 29 | Egypt | Liverpool |
Lionel Messi and Robert Lewandowski who plays for Bayern Munich in Germany are the best finishers in FIFA 22.
Top Rated Players based on their Wages
player_name = fifa_df[["wage_eur","long_name","value_eur","overall",'age','nationality_name','potential','club_name']].nlargest(10, ['wage_eur']).set_index('long_name')
player_name
wage_eur | value_eur | overall | age | nationality_name | potential | club_name | |
---|---|---|---|---|---|---|---|
long_name | |||||||
Kevin De Bruyne | 350000.0 | 125500000.0 | 91 | 30 | Belgium | 91 | Manchester City |
Karim Benzema | 350000.0 | 66000000.0 | 89 | 33 | France | 89 | Real Madrid CF |
Lionel Andrés Messi Cuccittini | 320000.0 | 78000000.0 | 93 | 34 | Argentina | 93 | Paris Saint-Germain |
Carlos Henrique Venancio Casimiro | 310000.0 | 88000000.0 | 89 | 29 | Brazil | 89 | Real Madrid CF |
Toni Kroos | 310000.0 | 75000000.0 | 88 | 31 | Germany | 88 | Real Madrid CF |
Raheem Sterling | 290000.0 | 107500000.0 | 88 | 26 | England | 89 | Manchester City |
Robert Lewandowski | 270000.0 | 119500000.0 | 92 | 32 | Poland | 92 | FC Bayern München |
Cristiano Ronaldo dos Santos Aveiro | 270000.0 | 45000000.0 | 91 | 36 | Portugal | 91 | Manchester United |
Neymar da Silva Santos Júnior | 270000.0 | 129000000.0 | 91 | 29 | Brazil | 91 | Paris Saint-Germain |
Sadio Mané | 270000.0 | 101000000.0 | 89 | 29 | Senegal | 89 | Liverpool |
KDB and Karim Benzema who plays as a striker for Real Madrid in Spain are the highest paid players in FIFA 22 and rightly so they're incredible players.
Top 10 Best Goalkeepers
player_name = fifa_df[['goalkeeping_diving', 'goalkeeping_handling', 'goalkeeping_kicking', 'goalkeeping_positioning', 'goalkeeping_reflexes', 'goalkeeping_speed',"long_name","overall",'age','nationality_name','club_name']].nlargest(10, ['goalkeeping_diving']).set_index('long_name')
player_name
goalkeeping_diving | goalkeeping_handling | goalkeeping_kicking | goalkeeping_positioning | goalkeeping_reflexes | goalkeeping_speed | overall | age | nationality_name | club_name | |
---|---|---|---|---|---|---|---|---|---|---|
long_name | ||||||||||
Gianluigi Donnarumma | 91 | 83 | 79 | 85 | 90 | 52.0 | 89 | 22 | Italy | Paris Saint-Germain |
Keylor Navas Gamboa | 89 | 84 | 75 | 87 | 89 | 54.0 | 88 | 34 | Costa Rica | Paris Saint-Germain |
Manuel Peter Neuer | 88 | 88 | 91 | 89 | 88 | 56.0 | 90 | 35 | Germany | FC Bayern München |
Marc-André ter Stegen | 88 | 85 | 88 | 88 | 90 | 43.0 | 90 | 29 | Germany | FC Barcelona |
Hugo Lloris | 88 | 83 | 65 | 84 | 90 | 61.0 | 87 | 34 | France | Tottenham Hotspur |
Jan Oblak | 87 | 92 | 78 | 90 | 90 | 50.0 | 91 | 28 | Slovenia | Atlético de Madrid |
Ederson Santana de Moraes | 87 | 82 | 93 | 88 | 88 | 64.0 | 89 | 27 | Brazil | Manchester City |
Alisson Ramsés Becker | 86 | 86 | 84 | 90 | 89 | 52.0 | 89 | 28 | Brazil | Liverpool |
Wojciech Tomasz Szczęsny | 86 | 82 | 73 | 87 | 88 | 49.0 | 87 | 31 | Poland | Juventus |
David De Gea Quintana | 86 | 79 | 76 | 79 | 87 | 57.0 | 84 | 30 | Spain | Manchester United |
These are the top 10 Goalkeepers in FIFA 22 and their respective Goalkeeper related ratings.
Summary
In summary I've been able to answer the following questions through visual and descriptive analysis:
- Who are the top 10 fastest players?
- Who are the top 10 slowest players?
- Who are the Top 10 Tallest Players?
- Who are the top 10 shortest players?
- Who are the top 10 heaviest players?
- Who are the top 10 oldest players?
- Who are the top 10 youngest players?
I've also been able to list out the best players based oon respective ratings :
- Top 20 Best FIFA 22 Players Based on Overall Rating
- Players Preferred foot
- Top 10 Highest Paid Players in FIFA 22 and their Respective Nationalities
- Top 10 Highest Paid Players and their Clubs
- Top 10 Players Based on Defensive Awareness Rating
- Top 10 Players Based on their Long Passing Rating
- Top 10 Players Based on the Dribbling Rating
- Top 10 Players Based on their Crossing Ability
- Best Strikers based on their Finishing Ability
- Top Rated Players based on their Wages
- Top 10 Best Goalkeepers.
I also showed the distribution and relationship of certain player features such as:
- Player Height Distribution
- Degrees of Players and Skill Moves Rating
- Relationship between Player Potential and Wage
- Relationship between Age and Wage
- Relationship between Player Overall and Age.