FIFA23 OFFICIAL DATASET
From FIFA17 to FIFA23 statistics for each football player
@kaggle.bryanb_fifa_player_stats_database
From FIFA17 to FIFA23 statistics for each football player
@kaggle.bryanb_fifa_player_stats_database
The dataset contains +17k unique players and more than 60 columns, general information and all KPIs the famous videogame offers. As the esport scene keeps rising espacially on FIFA, I thought it can be useful for the community (kagglers and/or gamers)
The data was retrieved thanks to a crawler that I implemented to retrieve:
We wouldn't be here without the help of others. I would like to thanks @karangadiya who I got inspiration from, check his repo here !
FIFA19 dataset: https://www.kaggle.com/karangadiya/fifa19
FIFA18 dataset: https://www.kaggle.com/thec03u5/fifa-18-demo-player-dataset
I used beautifulsoup to scrap https://sofifa.com/. First, I scrap the main page to get all general information and then, I scraped each player's webpage that is associated. I defined a batch size so I can parallelize the retrieving of the data. Then I merge all dataframes and cleaned the merged one. I have only 4 CPU and defined 5 batches:
If you have any question or suggestion, feel free to comment !
I added concatenation of all dataframes. !!! Disclaimer !!! Id column is no longer primary key. the primary key would be Id + source together
CREATE TABLE fifa17_official_data (
  "id" BIGINT,
  "name" VARCHAR,
  "age" BIGINT,
  "photo" VARCHAR,
  "nationality" VARCHAR,
  "flag" VARCHAR,
  "overall" BIGINT,
  "potential" BIGINT,
  "club" VARCHAR,
  "club_logo" VARCHAR,
  "value" VARCHAR,
  "wage" VARCHAR,
  "special" BIGINT,
  "preferred_foot" VARCHAR,
  "international_reputation" DOUBLE,
  "weak_foot" DOUBLE,
  "skill_moves" DOUBLE,
  "work_rate" VARCHAR,
  "body_type" VARCHAR,
  "real_face" VARCHAR,
  "position" VARCHAR,
  "jersey_number" DOUBLE,
  "joined" TIMESTAMP,
  "loaned_from" VARCHAR,
  "contract_valid_until" VARCHAR,
  "height" VARCHAR,
  "weight" VARCHAR,
  "crossing" DOUBLE,
  "finishing" DOUBLE,
  "headingaccuracy" DOUBLE,
  "shortpassing" DOUBLE,
  "volleys" DOUBLE,
  "dribbling" DOUBLE,
  "curve" DOUBLE,
  "fkaccuracy" DOUBLE,
  "longpassing" DOUBLE,
  "ballcontrol" DOUBLE,
  "acceleration" DOUBLE,
  "sprintspeed" DOUBLE,
  "agility" DOUBLE,
  "reactions" DOUBLE,
  "balance" DOUBLE,
  "shotpower" DOUBLE,
  "jumping" DOUBLE,
  "stamina" DOUBLE,
  "strength" DOUBLE,
  "longshots" DOUBLE,
  "aggression" DOUBLE,
  "interceptions" DOUBLE,
  "positioning" DOUBLE,
  "vision" DOUBLE,
  "penalties" DOUBLE,
  "composure" DOUBLE,
  "marking" DOUBLE,
  "standingtackle" DOUBLE,
  "slidingtackle" DOUBLE,
  "gkdiving" DOUBLE,
  "gkhandling" DOUBLE,
  "gkkicking" DOUBLE,
  "gkpositioning" DOUBLE,
  "gkreflexes" DOUBLE,
  "best_position" VARCHAR,
  "best_overall_rating" DOUBLE
);CREATE TABLE fifa18_official_data (
  "id" BIGINT,
  "name" VARCHAR,
  "age" BIGINT,
  "photo" VARCHAR,
  "nationality" VARCHAR,
  "flag" VARCHAR,
  "overall" BIGINT,
  "potential" BIGINT,
  "club" VARCHAR,
  "club_logo" VARCHAR,
  "value" VARCHAR,
  "wage" VARCHAR,
  "special" BIGINT,
  "preferred_foot" VARCHAR,
  "international_reputation" DOUBLE,
  "weak_foot" DOUBLE,
  "skill_moves" DOUBLE,
  "work_rate" VARCHAR,
  "body_type" VARCHAR,
  "real_face" VARCHAR,
  "position" VARCHAR,
  "jersey_number" DOUBLE,
  "joined" TIMESTAMP,
  "loaned_from" VARCHAR,
  "contract_valid_until" VARCHAR,
  "height" VARCHAR,
  "weight" VARCHAR,
  "crossing" DOUBLE,
  "finishing" DOUBLE,
  "headingaccuracy" DOUBLE,
  "shortpassing" DOUBLE,
  "volleys" DOUBLE,
  "dribbling" DOUBLE,
  "curve" DOUBLE,
  "fkaccuracy" DOUBLE,
  "longpassing" DOUBLE,
  "ballcontrol" DOUBLE,
  "acceleration" DOUBLE,
  "sprintspeed" DOUBLE,
  "agility" DOUBLE,
  "reactions" DOUBLE,
  "balance" DOUBLE,
  "shotpower" DOUBLE,
  "jumping" DOUBLE,
  "stamina" DOUBLE,
  "strength" DOUBLE,
  "longshots" DOUBLE,
  "aggression" DOUBLE,
  "interceptions" DOUBLE,
  "positioning" DOUBLE,
  "vision" DOUBLE,
  "penalties" DOUBLE,
  "composure" DOUBLE,
  "marking" DOUBLE,
  "standingtackle" DOUBLE,
  "slidingtackle" DOUBLE,
  "gkdiving" DOUBLE,
  "gkhandling" DOUBLE,
  "gkkicking" DOUBLE,
  "gkpositioning" DOUBLE,
  "gkreflexes" DOUBLE,
  "best_position" VARCHAR,
  "best_overall_rating" DOUBLE,
  "release_clause" VARCHAR
);CREATE TABLE fifa19_official_data (
  "id" BIGINT,
  "name" VARCHAR,
  "age" BIGINT,
  "photo" VARCHAR,
  "nationality" VARCHAR,
  "flag" VARCHAR,
  "overall" BIGINT,
  "potential" BIGINT,
  "club" VARCHAR,
  "club_logo" VARCHAR,
  "value" VARCHAR,
  "wage" VARCHAR,
  "special" BIGINT,
  "preferred_foot" VARCHAR,
  "international_reputation" DOUBLE,
  "weak_foot" DOUBLE,
  "skill_moves" DOUBLE,
  "work_rate" VARCHAR,
  "body_type" VARCHAR,
  "real_face" VARCHAR,
  "position" VARCHAR,
  "jersey_number" DOUBLE,
  "joined" TIMESTAMP,
  "loaned_from" VARCHAR,
  "contract_valid_until" VARCHAR,
  "height" VARCHAR,
  "weight" VARCHAR,
  "crossing" DOUBLE,
  "finishing" DOUBLE,
  "headingaccuracy" DOUBLE,
  "shortpassing" DOUBLE,
  "volleys" DOUBLE,
  "dribbling" DOUBLE,
  "curve" DOUBLE,
  "fkaccuracy" DOUBLE,
  "longpassing" DOUBLE,
  "ballcontrol" DOUBLE,
  "acceleration" DOUBLE,
  "sprintspeed" DOUBLE,
  "agility" DOUBLE,
  "reactions" DOUBLE,
  "balance" DOUBLE,
  "shotpower" DOUBLE,
  "jumping" DOUBLE,
  "stamina" DOUBLE,
  "strength" DOUBLE,
  "longshots" DOUBLE,
  "aggression" DOUBLE,
  "interceptions" DOUBLE,
  "positioning" DOUBLE,
  "vision" DOUBLE,
  "penalties" DOUBLE,
  "composure" DOUBLE,
  "marking" DOUBLE,
  "standingtackle" DOUBLE,
  "slidingtackle" DOUBLE,
  "gkdiving" DOUBLE,
  "gkhandling" DOUBLE,
  "gkkicking" DOUBLE,
  "gkpositioning" DOUBLE,
  "gkreflexes" DOUBLE,
  "best_position" VARCHAR,
  "best_overall_rating" DOUBLE,
  "release_clause" VARCHAR
);CREATE TABLE fifa20_official_data (
  "id" BIGINT,
  "name" VARCHAR,
  "age" BIGINT,
  "photo" VARCHAR,
  "nationality" VARCHAR,
  "flag" VARCHAR,
  "overall" BIGINT,
  "potential" BIGINT,
  "club" VARCHAR,
  "club_logo" VARCHAR,
  "value" VARCHAR,
  "wage" VARCHAR,
  "special" BIGINT,
  "preferred_foot" VARCHAR,
  "international_reputation" DOUBLE,
  "weak_foot" DOUBLE,
  "skill_moves" DOUBLE,
  "work_rate" VARCHAR,
  "body_type" VARCHAR,
  "real_face" VARCHAR,
  "position" VARCHAR,
  "jersey_number" DOUBLE,
  "joined" TIMESTAMP,
  "loaned_from" VARCHAR,
  "contract_valid_until" VARCHAR,
  "height" VARCHAR,
  "weight" VARCHAR,
  "crossing" DOUBLE,
  "finishing" DOUBLE,
  "headingaccuracy" DOUBLE,
  "shortpassing" DOUBLE,
  "volleys" DOUBLE,
  "dribbling" DOUBLE,
  "curve" DOUBLE,
  "fkaccuracy" DOUBLE,
  "longpassing" DOUBLE,
  "ballcontrol" DOUBLE,
  "acceleration" DOUBLE,
  "sprintspeed" DOUBLE,
  "agility" DOUBLE,
  "reactions" DOUBLE,
  "balance" DOUBLE,
  "shotpower" DOUBLE,
  "jumping" DOUBLE,
  "stamina" DOUBLE,
  "strength" DOUBLE,
  "longshots" DOUBLE,
  "aggression" DOUBLE,
  "interceptions" DOUBLE,
  "positioning" DOUBLE,
  "vision" DOUBLE,
  "penalties" DOUBLE,
  "composure" DOUBLE,
  "marking" DOUBLE,
  "standingtackle" DOUBLE,
  "slidingtackle" DOUBLE,
  "gkdiving" DOUBLE,
  "gkhandling" DOUBLE,
  "gkkicking" DOUBLE,
  "gkpositioning" DOUBLE,
  "gkreflexes" DOUBLE,
  "best_position" VARCHAR,
  "best_overall_rating" DOUBLE,
  "release_clause" VARCHAR,
  "defensiveawareness" DOUBLE
);CREATE TABLE fifa21_official_data (
  "id" BIGINT,
  "name" VARCHAR,
  "age" BIGINT,
  "photo" VARCHAR,
  "nationality" VARCHAR,
  "flag" VARCHAR,
  "overall" BIGINT,
  "potential" BIGINT,
  "club" VARCHAR,
  "club_logo" VARCHAR,
  "value" VARCHAR,
  "wage" VARCHAR,
  "special" BIGINT,
  "preferred_foot" VARCHAR,
  "international_reputation" DOUBLE,
  "weak_foot" DOUBLE,
  "skill_moves" DOUBLE,
  "work_rate" VARCHAR,
  "body_type" VARCHAR,
  "real_face" VARCHAR,
  "position" VARCHAR,
  "jersey_number" DOUBLE,
  "joined" TIMESTAMP,
  "loaned_from" VARCHAR,
  "contract_valid_until" VARCHAR,
  "height" VARCHAR,
  "weight" VARCHAR,
  "crossing" DOUBLE,
  "finishing" DOUBLE,
  "headingaccuracy" DOUBLE,
  "shortpassing" DOUBLE,
  "volleys" DOUBLE,
  "dribbling" DOUBLE,
  "curve" DOUBLE,
  "fkaccuracy" DOUBLE,
  "longpassing" DOUBLE,
  "ballcontrol" DOUBLE,
  "acceleration" DOUBLE,
  "sprintspeed" DOUBLE,
  "agility" DOUBLE,
  "reactions" DOUBLE,
  "balance" DOUBLE,
  "shotpower" DOUBLE,
  "jumping" DOUBLE,
  "stamina" DOUBLE,
  "strength" DOUBLE,
  "longshots" DOUBLE,
  "aggression" DOUBLE,
  "interceptions" DOUBLE,
  "positioning" DOUBLE,
  "vision" DOUBLE,
  "penalties" DOUBLE,
  "composure" DOUBLE,
  "marking" DOUBLE,
  "standingtackle" DOUBLE,
  "slidingtackle" DOUBLE,
  "gkdiving" DOUBLE,
  "gkhandling" DOUBLE,
  "gkkicking" DOUBLE,
  "gkpositioning" DOUBLE,
  "gkreflexes" DOUBLE,
  "best_position" VARCHAR,
  "best_overall_rating" DOUBLE,
  "release_clause" VARCHAR,
  "defensiveawareness" DOUBLE
);CREATE TABLE fifa22_official_data (
  "id" BIGINT,
  "name" VARCHAR,
  "age" BIGINT,
  "photo" VARCHAR,
  "nationality" VARCHAR,
  "flag" VARCHAR,
  "overall" BIGINT,
  "potential" BIGINT,
  "club" VARCHAR,
  "club_logo" VARCHAR,
  "value" VARCHAR,
  "wage" VARCHAR,
  "special" BIGINT,
  "preferred_foot" VARCHAR,
  "international_reputation" DOUBLE,
  "weak_foot" DOUBLE,
  "skill_moves" DOUBLE,
  "work_rate" VARCHAR,
  "body_type" VARCHAR,
  "real_face" VARCHAR,
  "position" VARCHAR,
  "jersey_number" DOUBLE,
  "joined" TIMESTAMP,
  "loaned_from" VARCHAR,
  "contract_valid_until" VARCHAR,
  "height" VARCHAR,
  "weight" VARCHAR,
  "crossing" DOUBLE,
  "finishing" DOUBLE,
  "headingaccuracy" DOUBLE,
  "shortpassing" DOUBLE,
  "volleys" DOUBLE,
  "dribbling" DOUBLE,
  "curve" DOUBLE,
  "fkaccuracy" DOUBLE,
  "longpassing" DOUBLE,
  "ballcontrol" DOUBLE,
  "acceleration" DOUBLE,
  "sprintspeed" DOUBLE,
  "agility" DOUBLE,
  "reactions" DOUBLE,
  "balance" DOUBLE,
  "shotpower" DOUBLE,
  "jumping" DOUBLE,
  "stamina" DOUBLE,
  "strength" DOUBLE,
  "longshots" DOUBLE,
  "aggression" DOUBLE,
  "interceptions" DOUBLE,
  "positioning" DOUBLE,
  "vision" DOUBLE,
  "penalties" DOUBLE,
  "composure" DOUBLE,
  "marking" DOUBLE,
  "standingtackle" DOUBLE,
  "slidingtackle" DOUBLE,
  "gkdiving" DOUBLE,
  "gkhandling" DOUBLE,
  "gkkicking" DOUBLE,
  "gkpositioning" DOUBLE,
  "gkreflexes" DOUBLE,
  "best_position" VARCHAR,
  "best_overall_rating" DOUBLE,
  "release_clause" VARCHAR,
  "defensiveawareness" DOUBLE
);CREATE TABLE fifa23_official_data (
  "id" BIGINT,
  "name" VARCHAR,
  "age" BIGINT,
  "photo" VARCHAR,
  "nationality" VARCHAR,
  "flag" VARCHAR,
  "overall" BIGINT,
  "potential" BIGINT,
  "club" VARCHAR,
  "club_logo" VARCHAR,
  "value" VARCHAR,
  "wage" VARCHAR,
  "special" BIGINT,
  "preferred_foot" VARCHAR,
  "international_reputation" DOUBLE,
  "weak_foot" DOUBLE,
  "skill_moves" DOUBLE,
  "work_rate" VARCHAR,
  "body_type" VARCHAR,
  "real_face" VARCHAR,
  "position" VARCHAR,
  "joined" TIMESTAMP,
  "loaned_from" VARCHAR,
  "contract_valid_until" VARCHAR,
  "height" VARCHAR,
  "weight" VARCHAR,
  "release_clause" VARCHAR,
  "kit_number" DOUBLE,
  "best_overall_rating" VARCHAR
);Anyone who has the link will be able to view this.