Football Data From Transfermarkt
Football (Soccer) data scraped from Transfermarkt website
@kaggle.davidcariboo_player_scores
Football (Soccer) data scraped from Transfermarkt website
@kaggle.davidcariboo_player_scores
Clean, structured and automatically updated football data from Transfermarkt, including
60,000+games from many seasons on all major competitions400+clubs from those competitions30,000+players from those clubs400,000+player market valuations historical records1,200,000+player appearance records from all gamesand more!
The dataset is composed of multiple CSV files with information on competitions, games, clubs, players and appearances that is automatically updated once a week. Each file contains the attributes of the entity and the IDs that can be used to join them together.
For example, the appearances file contains one row per player appearance, i.e. one row per player per game played. For each appearance you will find attributes such as goals, assists or yellow_cards and IDs referencing other entities within the dataset, such as player_id and game_id.
Idea: Chekout the mate data.world project Football Data from Transfermarkt for examples of how to use the resources in this dataset to create different types of analysis.
The source code that maintains this dataset, as well as the data pipeline, is available in Github. On a high level, the project uses transfermarkt-scraper to pull the data from Transfermark website and a set of Python scripts and SQL to curate it and publish it here.
Idea: Watch the
transfermarkt-datasetsGithub repository for updates on improvements and bugfixes on this dataset
This dataset is a live project subject to regular updates and new enhancements. The best way to find out about the different initiatives within this project and their status is to check the Issues section on transfermarkt-datasets.
The source of truth for the code and data for this project is Github and that is the best place to start a conversation, please checkout the community guidelines here.
If you have a github user I kindly ask that you post your questions there and not in the Discussion tab in this website.
CREATE TABLE appearances (
"appearance_id" VARCHAR,
"game_id" BIGINT,
"player_id" BIGINT,
"player_club_id" BIGINT,
"player_current_club_id" BIGINT,
"date" TIMESTAMP,
"player_name" VARCHAR,
"competition_id" VARCHAR,
"yellow_cards" BIGINT,
"red_cards" BIGINT,
"goals" BIGINT,
"assists" BIGINT,
"minutes_played" BIGINT
);CREATE TABLE club_games (
"game_id" BIGINT,
"club_id" DOUBLE,
"own_goals" DOUBLE,
"own_position" DOUBLE,
"own_manager_name" VARCHAR,
"opponent_id" DOUBLE,
"opponent_goals" DOUBLE,
"opponent_position" DOUBLE,
"opponent_manager_name" VARCHAR,
"hosting" VARCHAR,
"is_win" BIGINT
);CREATE TABLE clubs (
"club_id" BIGINT,
"club_code" VARCHAR,
"name" VARCHAR,
"domestic_competition_id" VARCHAR,
"total_market_value" VARCHAR,
"squad_size" BIGINT,
"average_age" DOUBLE,
"foreigners_number" BIGINT,
"foreigners_percentage" DOUBLE,
"national_team_players" BIGINT,
"stadium_name" VARCHAR,
"stadium_seats" BIGINT,
"net_transfer_record" VARCHAR,
"coach_name" VARCHAR,
"last_season" BIGINT,
"filename" VARCHAR,
"url" VARCHAR
);CREATE TABLE competitions (
"competition_id" VARCHAR,
"competition_code" VARCHAR,
"name" VARCHAR,
"sub_type" VARCHAR,
"type" VARCHAR,
"country_id" BIGINT,
"country_name" VARCHAR,
"domestic_league_code" VARCHAR,
"confederation" VARCHAR,
"url" VARCHAR,
"is_major_national_league" BOOLEAN
);CREATE TABLE game_events (
"game_event_id" VARCHAR,
"date" TIMESTAMP,
"game_id" BIGINT,
"minute" BIGINT,
"type" VARCHAR,
"club_id" BIGINT,
"player_id" BIGINT,
"description" VARCHAR,
"player_in_id" DOUBLE,
"player_assist_id" DOUBLE
);CREATE TABLE game_lineups (
"game_lineups_id" VARCHAR,
"date" TIMESTAMP,
"game_id" BIGINT,
"player_id" BIGINT,
"club_id" BIGINT,
"player_name" VARCHAR,
"type" VARCHAR,
"position" VARCHAR,
"number" VARCHAR,
"team_captain" BIGINT
);CREATE TABLE games (
"game_id" BIGINT,
"competition_id" VARCHAR,
"season" BIGINT,
"round" VARCHAR,
"date" TIMESTAMP,
"home_club_id" DOUBLE,
"away_club_id" DOUBLE,
"home_club_goals" DOUBLE,
"away_club_goals" DOUBLE,
"home_club_position" DOUBLE,
"away_club_position" DOUBLE,
"home_club_manager_name" VARCHAR,
"away_club_manager_name" VARCHAR,
"stadium" VARCHAR,
"attendance" DOUBLE,
"referee" VARCHAR,
"url" VARCHAR,
"home_club_formation" VARCHAR,
"away_club_formation" VARCHAR,
"home_club_name" VARCHAR,
"away_club_name" VARCHAR,
"aggregate" VARCHAR,
"competition_type" VARCHAR
);CREATE TABLE players (
"player_id" BIGINT,
"first_name" VARCHAR,
"last_name" VARCHAR,
"name" VARCHAR,
"last_season" BIGINT,
"current_club_id" BIGINT,
"player_code" VARCHAR,
"country_of_birth" VARCHAR,
"city_of_birth" VARCHAR,
"country_of_citizenship" VARCHAR,
"date_of_birth" TIMESTAMP,
"sub_position" VARCHAR,
"position" VARCHAR,
"foot" VARCHAR,
"height_in_cm" DOUBLE,
"contract_expiration_date" TIMESTAMP,
"agent_name" VARCHAR,
"image_url" VARCHAR,
"url" VARCHAR,
"current_club_domestic_competition_id" VARCHAR,
"current_club_name" VARCHAR,
"market_value_in_eur" DOUBLE,
"highest_market_value_in_eur" DOUBLE
);CREATE TABLE player_valuations (
"player_id" BIGINT,
"date" TIMESTAMP,
"market_value_in_eur" BIGINT,
"current_club_id" BIGINT,
"player_club_domestic_competition_id" VARCHAR
);CREATE TABLE transfers (
"player_id" BIGINT,
"transfer_date" TIMESTAMP,
"transfer_season" VARCHAR,
"from_club_id" BIGINT,
"to_club_id" BIGINT,
"from_club_name" VARCHAR,
"to_club_name" VARCHAR,
"transfer_fee" DOUBLE,
"market_value_in_eur" DOUBLE,
"player_name" VARCHAR
);Anyone who has the link will be able to view this.