Présenté par StatsBomb, ce référentiel est un package Python qui permet aux utilisateurs de diffuser facilement des données StatsBomb dans Python en utilisant vos informations de connexion pour l'API ou des données gratuites de notre page GitHub. L'accès à l'API est réservé aux clients payants
Assistance : [email protected]
pip install statsbombpy
nose2 -v --pretty-assert
L'authentification peut être effectuée en définissant les variables d'environnement nommées SB_USERNAME
et SB_PASSWORD
sur vos informations de connexion.
Alternativement, si vous ne souhaitez pas utiliser de variables d'environnement, toutes les fonctions acceptent un argument creds
pour transmettre vos informations de connexion au format {"user": "", "passwd": ""}
Vous pouvez spécifier le nombre de cœurs de votre ordinateur à utiliser lors de l'exécution des fonctions sb.competition_events()
et sb.competition_frames()
en définissant la variable d'environnement SB_CORES
sur le nombre que vous souhaitez utiliser. Permettre à statsbombpy d'utiliser plus de cœurs accélérera ces fonctions.
Si vous n'avez pas défini de variable d'environnement, nous essaierons de détecter le nombre de cœurs de votre système et d'en utiliser 2 de moins que ce nombre. Si nous ne pouvons pas détecter le nombre de cœurs, nous fixons le nombre à 4.
Les données ouvertes de StatsBomb sont accessibles sans avoir besoin d'authentification.
StatsBomb s'engage à partager publiquement de nouvelles données et recherches pour améliorer la compréhension du football. Nous souhaitons encourager activement de nouvelles recherches et analyses à tous les niveaux. C'est pourquoi nous avons rendu certaines ligues de données StatsBomb librement accessibles au public pour des projets de recherche et un véritable intérêt pour l'analyse du football.
StatsBomb espère qu'en rendant les données disponibles gratuitement, nous élargirons la communauté analytique du football au sens large et attirerons de nouveaux talents dans l'industrie. Nous souhaitons collecter certaines informations personnelles de base sur les utilisateurs de nos données. En nous communiquant votre adresse e-mail, cela signifie que nous vous informerons lorsque nous mettrons à disposition davantage de données, de tutoriels et de recherches. Nous stockerons les informations conformément à notre politique de confidentialité et au RGPD.
Même si nous souhaitons partager les données et faciliter la recherche, nous vous invitons également à être responsable avec les données. Veuillez enregistrer vos coordonnées sur https://www.statsbomb.com/resource-centre et lire attentivement notre contrat d'utilisation. En utilisant ce référentiel, vous acceptez les conditions d'utilisation. Si vous publiez, partagez ou distribuez des recherches, des analyses ou des informations basées sur ces données, veuillez indiquer la source de données comme StatsBomb et utiliser notre logo.
from statsbombpy import sb
sb.competitions()
id_compétition | saison_id | nom_pays | nom_compétition | compétition_genre | nom_saison | match_mis à jour | match_disponible | |
---|---|---|---|---|---|---|---|---|
0 | 9 | 42 | Allemagne | 1. Bundesliga | mâle | 2019/2020 | 2019-12-29T07:47:45.981 | 2019-12-29T07:47:45.981 |
1 | 9 | 4 | Allemagne | 1. Bundesliga | mâle | 2018/2019 | 2019-12-16T23:09:16.168756 | 2019-12-16T23:09:16.168756 |
2 | 9 | 1 | Allemagne | 1. Bundesliga | mâle | 2017/2018 | 2019-12-16T23:09:16.168756 | 2019-12-16T23:09:16.168756 |
3 | 78 | 42 | Croatie | 1. HNL | mâle | 2019/2020 | 2020-01-02T10:35:49.065 | 2020-01-02T10:35:49.065 |
4 | 10 | 42 | Allemagne | 2. Bundesliga | mâle | 2019/2020 | 2019-12-27T00:36:37.498 | 2019-12-27T00:36:37.498 |
sb.matches(competition_id=9, season_id=42)
match_id | date_match | démarrer | concours | saison | home_team | équipe_extérieure | home_score | loin_score | match_status | dernière_mise à jour | semaine_match | étape_compétition | stade | arbitre | home_managers | loin_managers | version_données | shot_fidelity_version | xy_fidelity_version | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 303299 | 2019-12-15 | 18:00:00.000 | Allemagne - 1. Bundesliga | 2019/2020 | Schalke04 | Eintracht Francfort | 1 | 0 | disponible | 2019-12-17T09:50:17.558 | 15 | Saison régulière | VELTINS-Arène | F.Zwayer | David Wagner | Adi Hütter | 1.1.0 | 2 | 2 |
1 | 303223 | 2019-09-01 | 18:00:00.000 | Allemagne - 1. Bundesliga | 2019/2020 | Eintracht Francfort | Fortuna Düsseldorf | 2 | 1 | disponible | 2019-12-16T23:09:16.168756 | 3 | Saison régulière | Commerzbank-Arena | F. Willenborg | Adi Hütter | Friedhelm Funkel | 1.1.0 | 2 | 2 |
2 | 303083 | 2019-12-15 | 15:30:00.000 | Allemagne - 1. Bundesliga | 2019/2020 | Wolfsbourg | Borussia Mönchengladbach | 2 | 1 | disponible | 2019-12-17T15:52:17.843 | 15 | Saison régulière | Arène VOLKSWAGEN | F.Brych | Olivier Glasner | Marc Rose | 1.1.0 | 2 | 2 |
3 | 303266 | 2019-12-14 | 15:30:00.000 | Allemagne - 1. Bundesliga | 2019/2020 | Hertha Berlin | Fribourg | 1 | 0 | disponible | 2019-12-17T17:43:18.285 | 15 | Saison régulière | Stade olympique de Berlin | F. Willenborg | Jürgen Klinsmann | Christian Streich | 1.1.0 | 2 | 2 |
4 | 303073 | 2019-12-21 | 15:30:00.000 | Allemagne - 1. Bundesliga | 2019/2020 | Bayern Munich | Wolfsbourg | 2 | 0 | disponible | 2019-12-23T18:02:36.454 | 17 | Saison régulière | Allianz-Arena | C.Dingert | Hans-Dieter Flick | Olivier Glasner | 1.1.0 | 2 | 2 |
sb.lineups(match_id=303299)["Eintracht Frankfurt"]
id_joueur | nom_joueur | pseudo_joueur | date_naissance | joueur_genre | hauteur_joueur | poids_joueur | numéro_maillot | pays | |
---|---|---|---|---|---|---|---|---|---|
0 | 3204 | Almamy Touré | Aucun | 1996-04-28 | mâle | 182,0 | 72,0 | 18 | Mali |
1 | 5591 | Filip Kostic | Aucun | 1992-11-01 | mâle | 184,0 | 82,0 | 10 | Serbie |
2 | 7713 | Obite Evan N"Dicka | Evan N'Dicka | 1999-08-20 | mâle | 190,0 | NaN | 2 | France |
3 | 8307 | Martin Hinteregger | Aucun | 1992-09-07 | mâle | 184,0 | 83,0 | 13 | Autriche |
4 | 8669 | Mijat Gacinović | Aucun | 1995-02-08 | mâle | 175,0 | 66,0 | 11 | Serbie |
Les paramètres par défaut pour interroger les événements renvoient une seule trame de données avec tous les types d'événements et attributs d'événement.
events = sb.events(match_id=303299)
ball_receipt_outcome | balle_recovery_offensive | balle_recovery_recovery_failure | block_deflection | carry_end_location | liquidation_aérienne_gagnée | liquidation_body_part | liquidation_head | liquidation_left_foot | liquidation_right_foot | contre-pression | dribble_no_touch | dribble_outcome | dribble_overrun | duel_outcome | duel_type | durée | faute_commit_advantage | faute_commit_card | foul_won_advantage | foul_won_defensive | gardien_body_part | goalkeeper_end_location | goalkeeper_outcome | position_gardien | gardien_technique | type_gardien | identifiant | indice | blessure_stoppage_in_chain | interception_outcome | emplacement | match_id | minute | hors caméra | dehors | pass_aerial_won | pass_angle | pass_assisted_shot_id | pass_body_part | passe_cross | pass_cut_back | pass_dévié | pass_end_location | pass_goal_assist | hauteur_passe | longueur_passe | pass_outcome | pass_outswinging | pass_recipient | pass_shot_assist | pass_straight | pass_switch | passe_technique | pass_through_ball | type_passe | pass_xclaim | période | motif_play | joueur | position | possession | possession_team | événements_connexes | deuxième | shot_aerial_won | shot_body_part | shot_end_location | shot_first_time | shot_freeze_frame | shot_key_pass_id | shot_one_on_one | shot_outcome | shot_statsbomb_xg | shot_statsbomb_xg2 | tir_technique | type_de_coup | résultat_de substitution | substitution_remplacement | équipe | horodatage | taper | sous_pression | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
500 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 3.498736 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 84828c06-41b5-44eb-aa92-1710bdb818ac | 1838 | NaN | NaN | [50.1, 16.6] | 303299 | 47 | NaN | NaN | NaN | 2.720095 | NaN | Pied gauche | NaN | NaN | NaN | [13.3, 33.1] | NaN | Passage au sol | 40.329765 | NaN | NaN | Frederik Ronnow | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 2 | Jeu régulier | Obite Evan N"Dicka | Défenseur central gauche | 103 | Eintracht Francfort | [ae3094e3-faa3-4608-8284-d9b8cca77711, c1202f1c-0831-4e88-83b2-597f56f0c858] | 52 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | Eintracht Francfort | 00:02:52.438 | Passer | Vrai |
501 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 3.604236 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 9061cd20-513b-499f-b925-f1de5f241281 | 1840 | NaN | NaN | [13.3, 33.1] | 303299 | 47 | NaN | NaN | NaN | -0,153945 | NaN | Pied droit | NaN | NaN | NaN | [77.1, 23.2] | NaN | Passe-haut | 64.563540 | Incomplet | NaN | Mijat Gacinović | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 2 | Jeu régulier | Frederik Ronnow | Gardien de but | 103 | Eintracht Francfort | [8e6495a7-782a-4f1a-845f-3ec50d761a1e, ff758a12-1ba6-4dd4-8b2c-7d39aa7aed97] | 55 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | Eintracht Francfort | 00:02:55.937 | Passer | NaN |
502 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 2.101999 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 8e6495a7-782a-4f1a-845f-3ec50d761a1e | 1842 | NaN | NaN | [43,0, 56,9] | 303299 | 47 | NaN | NaN | NaN | -0,703110 | NaN | Tête | NaN | NaN | NaN | [64,0, 39,1] | NaN | Passe-haut | 27.528894 | NaN | NaN | Amine Harit | NaN | NaN | NaN | NaN | NaN | Récupération | NaN | 2 | Jeu régulier | Ozan Muhammed Kabak | Défenseur central droit | 104 | Schalke04 | [9061cd20-513b-499f-b925-f1de5f241281, be6dfe7d-7596-4cc2-8cd9-8c17d064317e] | 59 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | Schalke04 | 00:02:59.541 | Passer | NaN |
503 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 1.187459 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 86431bc7-210a-4868-8e18-26ff38becefc | 1854 | NaN | NaN | [65.9, 12.6] | 303299 | 48 | NaN | NaN | NaN | -0,730239 | NaN | Pied droit | NaN | NaN | NaN | [74.5, 4.9] | NaN | Passage au sol | 11.543396 | NaN | NaN | Amine Harit | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 2 | Jeu régulier | Suat Serdar | Milieu défensif gauche | 104 | Schalke04 | [761b4e65-8f64-464c-8153-6a98465208ba] | 7 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | Schalke04 | 00:03:07.689 | Passer | NaN |
504 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 0,766628 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 6e58c713-622c-4246-8243-e4162e487a1c | 1858 | NaN | NaN | [79.1, 10.5] | 303299 | 48 | NaN | NaN | NaN | 1.254940 | NaN | Pied droit | NaN | NaN | NaN | [84.1, 25.8] | NaN | Passage au sol | 16.096273 | NaN | NaN | Rabbin Matondo | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 2 | Jeu régulier | Amine Harit | Milieu offensif central | 104 | Schalke04 | [b1960a76-d3ae-4ef3-a2cd-47eca8c25e0a, dd1575c0-a408-4177-944d-7e86d2f79181] | 11 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | Schalke04 | 00:03:11.719 | Passer | Vrai |
Il est également possible d'obtenir des dataframes distinctes pour chaque type d'événement et/ou d'avoir des attributs d'événement distincts sur leurs propres colonnes.
sb.events(match_id=303299, split=True, flatten_attrs=False)["dribbles"]
identifiant | indice | période | horodatage | minute | deuxième | taper | possession | possession_team | motif_play | équipe | joueur | position | emplacement | durée | sous_pression | événements_connexes | dribble | match_id | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | b190c01f-ad24-468c-8241-f955b91d996c | 131 | 1 | 00:02:08.032 | 2 | 8 | Dribble | 4 | Schalke04 | Jeu régulier | Schalke04 | Daniel Caligiuri | Aile droite | [110.2, 62.9] | 0,000000 | Vrai | [60f822df-5747-4787-b0f9-45bf5217eb8a] | {'résultat' : {'id' : 8, 'nom' : 'Complet'}} | 303299 |
1 | 4d773c92-f89f-491e-b3e0-3a1d2e863148 | 399 | 1 | 00:08:48.623 | 8 | 48 | Dribble | 18 | Schalke04 | Jeu régulier | Schalke04 | Amine Harit | Milieu offensif central | [88,9, 22,7] | 0,000000 | Vrai | [93d829df-eea7-416b-95aa-7593828cfade] | {'résultat' : {'id' : 8, 'nom' : 'Complet'}} | 303299 |
2 | 8a78dce4-998a-4e81-902c-9f3957cebc9d | 460 | 1 | 00:13:30.202 | 13 | 30 | Dribble | 23 | Schalke04 | Jeu régulier | Schalke04 | Daniel Caligiuri | Aile droite | [99,5, 68,1] | 0,007309 | Vrai | [772c5aae-e34e-4364-8a98-7caf7636c90b] | {'résultat' : {'id' : 9, 'nom' : 'Incomplet'}} | 303299 |
3 | e44d0122-2f2e-4771-820d-cc326a8b0379 | 496 | 1 | 00:14:10.135 | 14 | 10 | Dribble | 24 | Schalke04 | De jeter dans | Schalke04 | Suat Serdar | Milieu défensif gauche | [41.2, 31.7] | 0,000000 | Vrai | [4de4039f-7efc-461b-b7d6-27c32ec2cd2a] | {'résultat' : {'id' : 8, 'nom' : 'Complet'}} | 303299 |
4 | 9555afbd-d838-42c9-8f80-be3cd09e4c4a | 793 | 1 | 00:20:18.409 | 20 | 18 | Dribble | 33 | Eintracht Francfort | Jeu régulier | Eintracht Francfort | Timothée Chandler | Aile droite arrière | [81,8, 75,7] | 0,000000 | Vrai | [a5c88cee-6319-4c25-91cd-8a028d8dbfbf] | {'résultat' : {'id' : 9, 'nom' : 'Incomplet'}} | 303299 |
Tous les événements d'une compétition donnée peuvent être interrogés et stockés sur une seule trame de données
events = sb.competition_events(
country="Germany",
division= "1. Bundesliga",
season="2019/2020",
gender="male"
)
grouped_events = sb.competition_events(
country="Germany",
division= "1. Bundesliga",
season="2019/2020",
split=True
)
grouped_events["dribbles"]
identifiant | indice | période | horodatage | minute | deuxième | taper | possession | possession_team | motif_play | équipe | joueur | position | emplacement | durée | sous_pression | événements_connexes | dribble | match_id | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | b190c01f-ad24-468c-8241-f955b91d996c | 131 | 1 | 00:02:08.032 | 2 | 8 | Dribble | 4 | Schalke04 | Jeu régulier | Schalke04 | Daniel Caligiuri | Aile droite | [110.2, 62.9] | 0,000000 | Vrai | [60f822df-5747-4787-b0f9-45bf5217eb8a] | {'résultat' : {'id' : 8, 'nom' : 'Complet'}} | 303299 |
1 | 4d773c92-f89f-491e-b3e0-3a1d2e863148 | 399 | 1 | 00:08:48.623 | 8 | 48 | Dribble | 18 | Schalke04 | Jeu régulier | Schalke04 | Amine Harit | Milieu offensif central | [88,9, 22,7] | 0,000000 | Vrai | [93d829df-eea7-416b-95aa-7593828cfade] | {'résultat' : {'id' : 8, 'nom' : 'Complet'}} | 303299 |
2 | 8a78dce4-998a-4e81-902c-9f3957cebc9d | 460 | 1 | 00:13:30.202 | 13 | 30 | Dribble | 23 | Schalke04 | Jeu régulier | Schalke04 | Daniel Caligiuri | Aile droite | [99,5, 68,1] | 0,007309 | Vrai | [772c5aae-e34e-4364-8a98-7caf7636c90b] | {'résultat' : {'id' : 9, 'nom' : 'Incomplet'}} | 303299 |
3 | e44d0122-2f2e-4771-820d-cc326a8b0379 | 496 | 1 | 00:14:10.135 | 14 | 10 | Dribble | 24 | Schalke04 | De jeter dans | Schalke04 | Suat Serdar | Milieu défensif gauche | [41.2, 31.7] | 0,000000 | Vrai | [4de4039f-7efc-461b-b7d6-27c32ec2cd2a] | {'résultat' : {'id' : 8, 'nom' : 'Complet'}} | 303299 |
4 | 9555afbd-d838-42c9-8f80-be3cd09e4c4a | 793 | 1 | 00:20:18.409 | 20 | 18 | Dribble | 33 | Eintracht Francfort | Jeu régulier | Eintracht Francfort | Timothée Chandler | Aile droite arrière | [81,8, 75,7] | 0,000000 | Vrai | [a5c88cee-6319-4c25-91cd-8a028d8dbfbf] | {'résultat' : {'id' : 9, 'nom' : 'Incomplet'}} | 303299 |
Si vous avez accès aux données 360 pour une compétition, vous pouvez définir include_360_metrics=True
dans les fonctions events()
et competition_events()
pour récupérer des métriques 360 telles qu'une passe de rupture de ligne avec les données de l'événement.
Les données ouvertes n'incluent pas les métriques 360. Ceci n'est actuellement disponible que pour les clients disposant d'un abonnement de données.
events = sb.events(match_id=3837323, include_360_metrics=True)
comp_events = sb.competition_events(
country="Europe",
division="Champions League",
season="2022/2023",
include_360_metrics=True,
)
comp_events
50_50 | bad_behaviour_card | ball_receipt_exceeds_distance | ball_receipt_in_space | ball_receipt_outcome | balle_recovery_offensive | balle_recovery_recovery_failure | block_deflection | block_offensive | block_save_block | carry_end_location | liquidation_aérienne_gagnée | liquidation_body_part | liquidation_head | liquidation_left_foot | liquidation_autre | liquidation_right_foot | contre-pression | distance_to_nearest_defender | dribble_no_touch | dribble_nutmeg | dribble_outcome | dribble_overrun | duel_outcome | duel_type | durée | faute_commit_advantage | faute_commit_card | foul_committe_offensive | faute_commit_penalty | faute_commit_type | foul_won_advantage | foul_won_defensive | faute_won_penalty | gardien_body_part | goalkeeper_end_location | goalkeeper_lost_in_play | goalkeeper_lost_out | goalkeeper_outcome | position_gardien | goalkeeper_punched_out | goalkeeper_shot_saved_off_target | goalkeeper_shot_saved_to_post | goalkeeper_success_in_play | gardien_technique | type_gardien | half_start_late_video_start | identifiant | indice | blessure_stoppage_in_chain | interception_outcome | line_breaking_pass | emplacement | minute | miscontrol_aerial_won | num_defenders_on_goal_side_of_actor | obv_contre_après | obv_contre_avant | obv_contre_net | obv_for_after | obv_for_before | obv_for_net | obv_total_net | hors caméra | dehors | pass_aerial_won | pass_angle | pass_assisted_shot_id | pass_body_part | passe_cross | pass_cut_back | pass_dévié | pass_end_location | pass_goal_assist | hauteur_passe | pass_inswinging | longueur_passe | pass_miscommunication | pass_no_touch | pass_outcome | pass_outswinging | pass_recipient | pass_shot_assist | pass_straight | pass_switch | passe_technique | pass_through_ball | type_passe | pass_xclaim | période | motif_play | joueur | id_joueur | player_off_permanent | position | possession | possession_team | possession_team_id | événements_connexes | deuxième | shot_aerial_won | shot_body_part | tir_dévié | shot_end_location | shot_first_time | shot_freeze_frame | shot_key_pass_id | shot_one_on_one | shot_open_goal | shot_outcome | shot_redirect | shot_saved_off_target | shot_saved_to_post | shot_statsbomb_xg | shot_statsbomb_xg2 | tir_technique | type_de_coup | résultat_de substitution | substitution_remplacement | équipe | horodatage | taper | sous_pression | visible_opponents | visible_teammates | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 0,0 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 3479244f-8234-43c9-a389-4ce587062b48 | 1 | NaN | NaN | NaN | NaN | 0 | NaN | NaN | Aucun | Aucun | Aucun | Aucun | Aucun | Aucun | Aucun | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 1 | Jeu régulier | NaN | NaN | NaN | NaN | 1 | Réal Madrid | 220 | NaN | 0 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | Réal Madrid | 00:00:00.000 | XI de départ | NaN | NaN | NaN |
1 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 0,0 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | c4f5a51b-741e-4920-ac32-02349b1f2755 | 2 | NaN | NaN | NaN | NaN | 0 | NaN | NaN | Aucun | Aucun | Aucun | Aucun | Aucun | Aucun | Aucun | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 1 | Jeu régulier | NaN | NaN | NaN | NaN | 1 | Réal Madrid | 220 | NaN | 0 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | celtique | 00:00:00.000 | XI de départ | NaN | NaN | NaN |
2 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 0,0 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 27be67e7-fdb5-4db9-92b6-8f3214cecec4 | 1 | NaN | NaN | NaN | NaN | 0 | NaN | NaN | Aucun | Aucun | Aucun | Aucun | Aucun | Aucun | Aucun | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 1 | Jeu régulier | NaN | NaN | NaN | NaN | 1 | Juve | 224 | NaN | 0 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | Juve | 00:00:00.000 | XI de départ | NaN | NaN | NaN |
3 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 0,0 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 819c381e-29c1-4f10-a6c3-acc3181cec14 | 2 | NaN | NaN | NaN | NaN | 0 | NaN | NaN | Aucun | Aucun | Aucun | Aucun | Aucun | Aucun | Aucun | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 1 | Jeu régulier | NaN | NaN | NaN | NaN | 1 | Juve | 224 | NaN | 0 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | Paris Saint-Germain | 00:00:00.000 | XI de départ | NaN | NaN | NaN |
4 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 0,0 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | e6d42d87-c78a-4286-94fd-4095e9f7b16f | 1 | NaN | NaN | NaN | NaN | 0 | NaN | NaN | Aucun | Aucun | Aucun | Aucun | Aucun | Aucun | Aucun | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 1 | Jeu régulier | NaN | NaN | NaN | NaN | 1 | Manchester City | 36 | NaN | 0 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | Manchester City | 00:00:00.000 | XI de départ | NaN | NaN | NaN |
Les fonctions de trame renverront les données brutes d'arrêt sur image à 360° ainsi que la zone visible pour chaque image. Ceci est renvoyé au niveau du joueur, vous disposez donc de plusieurs lignes par frame/event_id.
match_frames = sb.frames(match_id=3772072, fmt='dataframe')
comp_frames = sb.competition_frames(
country="Germany",
division= "1. Bundesliga",
season="2019/2020"
)
match_frames
acteur | distance_from_edge_of_visible_area | événement_uuid | gardien | emplacement | match_id | coéquipier | zone_visible | |
---|---|---|---|---|---|---|---|---|
0 | FAUX | 5.183739 | 065b15cc-b550-48de-9a1e-a9608d8e6c6d | FAUX | [79.14114105224532, 12.646560364129726] | 3855869 | FAUX | [50.8965834880119, 80.0, 55.8915648466696, 6.76382112514142, 80.0765213141343, 1.48859955554994, 113.056993108772, 80,0, 50,8965834880119, 80,0] |
1 | FAUX | 7.784551 | 065b15cc-b550-48de-9a1e-a9608d8e6c6d | FAUX | [80.68650097437124, 23.040779651892883] | 3855869 | Vrai | [50.8965834880119, 80.0, 55.8915648466696, 6.76382112514142, 80.0765213141343, 1.48859955554994, 113.056993108772, 80,0, 50,8965834880119, 80,0] |
2 | FAUX | 8.873694 | 065b15cc-b550-48de-9a1e-a9608d8e6c6d | FAUX | [80.20033992405365, 24.695673759901382] | 3855869 | FAUX | [50.8965834880119, 80.0, 55.8915648466696, 6.76382112514142, 80.0765213141343, 1.48859955554994, 113.056993108772, 80,0, 50,8965834880119, 80,0] |
3 | FAUX | 9.738309 | 065b15cc-b550-48de-9a1e-a9608d8e6c6d | FAUX | [82.43349155444821, 32.24426347120625] | 3855869 | FAUX | [50.8965834880119, 80.0, 55.8915648466696, 6.76382112514142, 80.0765213141343, 1.48859955554994, 113.056993108772, 80,0, 50,8965834880119, 80,0] |
4 | FAUX | 11.049633 | 065b15cc-b550-48de-9a1e-a9608d8e6c6d | FAUX | [81.320294294838, 32.98015558905158] | 3855869 | Vrai | [50.8965834880119, 80.0, 55.8915648466696, 6.76382112514142, 80.0765213141343, 1.48859955554994, 113.056993108772, 80,0, 50,8965834880119, 80,0] |
Pour les clients, nous fournissons également des statistiques agrégées au niveau des matchs de joueurs, des saisons de joueurs et des saisons d'équipe.
player_match = sb.player_match_stats(3772072)
player_season = sb.player_season_stats(competition_id=9, season_id=42)
team_match = sb.team_match_stats(3772072)
team_season = sb.team_season_stats(competition_id=9, season_id=42)
player_match
player_match_pressions | player_match_long_balls | player_match_shot_touch_ratio | player_match_passes_into_box | player_match_pression_duration_avg | player_match_crossing_ratio | player_match_op_f3_forward_passes | player_match_passing_ratio | id_équipe | player_match_successful_passes | player_match_op_xgbuildup_per_possession | player_match_op_xgchain | player_match_op_passes_into_box | player_match_deep_progressions | player_match_turnovers | player_match_counterpressiond_action_fails | player_match_passes | player_match_key_passes | player_match_dispossessions | player_match_penalties_won | player_match_through_balls | nom_équipe | player_match_op_passes | player_match_dribbles | player_match_clearances | player_match_forward_passes | player_match_np_xg_per_shot | player_match_counterpressions | id_joueur | player_match_op_xa | player_match_op_xgchain_per_possession | joueur_match_minutes | player_match_pressiond_long_balls | player_match_op_f3_sideways_passes | player_match_dribbles_faced | player_match_np_xg | joueur_match_goals | player_match_op_key_passes | player_match_aerial_ratio | player_match_op_shots | player_match_successful_crosses | player_match_shots_blocked | player_match_op_f3_passes | player_match_op_assistes | player_match_long_ball_ratio | compte_id | player_match_np_shots | player_match_challenge_ratio | player_match_touches | player_match_pression_regains | player_match_crosses_into_box | player_match_fouls | player_match_sideways_passes | player_match_aerials | player_match_touches_inside_box | player_match_counterpression_duration_total | player_match_successful_aerials | player_match_box_cross_ratio | player_match_xgbuildup_per_possession | player_match_dribbled_past | player_match_pression_duration_total | player_match_op_xgbuildup | player_match_np_shots_on_target | player_match_interceptions | player_match_counterpression_duration_avg | player_match_xgchain_per_possession | player_match_successful_long_balls | player_match_op_f3_backward_passes | player_match_xgchain | player_match_tackles | player_match_assistes | player_match_sp_xa | player_match_aggressive_actions | nom_joueur | joueur_match_xa | match_id | player_match_passes_inside_box | player_match_possession | player_match_pressiond_action_fails | player_match_crosses | player_match_fouls_won | player_match_xgbuildup | player_match_backward_passes | player_match_unpressiond_long_balls | player_match_np_goals | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | NaN | 10 | 0,000000 | 0 | NaN | NaN | 0 | 0,842105 | 870 | 32 | 0,003191 | 0,105292 | 0 | 0 | 0 | NaN | 38 | 0 | 0 | 0 | 0 | Arminia Bielefeld | 33 | 0 | 0 | 9 | NaN | NaN | 9194 | 0,000000 | 0,003191 | 94.21667 | 1 | 0 | 0 | 0,000000 | 0 | 0 | NaN | 0 | 0 | 0 | 0 | 0 | 0,600000 | 48 | 0 | NaN | 65 | 0 | 0 | 0 | 29 | 0 | 0 | NaN | 0 | NaN | 0,003191 | 0 | NaN | 0,105292 | 0 | 0 | NaN | 0,003191 | 6 | 0 | 0,105292 | 0 | 0 | 0,000000 | 0 | Stefan Ortega | 0,000000 | 3772072 | 0 | 0,491135 | NaN | 0 | 0 | 0,105292 | 0 | 9 | 0 |
1 | 8.0 | 0 | 0,033333 | 0 | 0,570626 | 0,0 | 0 | 0,812500 | 870 | 13 | 0,003726 | 0,160582 | 0 | 1 | 3 | 0,0 | 16 | 1 | 3 | 0 | 0 | Arminia Bielefeld | 10 | 1 | 1 | 0 | 0,034737 | 1.0 | 9210 | 0,043881 | 0,007299 | 91.90000 | 1 | 4 | 0 | 0,034737 | 0 | 1 | 0,285714 | 1 | 0 | 0 | 6 | 0 | NaN | 48 | 1 | 1.0 | 30 | 0 | 0 | 0 | 10 | 7 | 5 | 0,327541 | 2 | NaN | 0,003726 | 0 | 4.565010 | 0,081964 | 0 | 0 | 0,327541 | 0,007299 | 0 | 2 | 0,160582 | 1 | 0 | 0,000000 | 9 | Fabien Klos | 0,043881 | 3772072 | 1 | 0,491135 | 0,0 | 1 | 1 | 0,081964 | 6 | 0 | 0 |
2 | 7.0 | 13 | 0,000000 | 1 | 1.795411 | 0,0 | 1 | 0,852941 | 190 | 58 | 0,017993 | 0,773687 | 0 | 3 | 0 | 0,0 | 68 | 1 | 0 | 0 | 0 | Union Berlin | 60 | 0 | 2 | 4 | NaN | 0,0 | 9164 | 0,000000 | 0,017993 | 94.21667 | 2 | 3 | 0 | 0,000000 | 0 | 0 | 0,666667 | 0 | 0 | 1 | 4 | 0 | 0,615385 | 48 | 0 | 1.0 | 122 | 1 | 0 | 2 | 51 | 3 | 0 | NaN | 2 | 0,0 | 0,017993 | 0 | 12.567875 | 0,773687 | 0 | 1 | NaN | 0,019504 | 8 | 0 | 0,838693 | 2 | 0 | 0,043227 | 11 | Christophe Trimmel | 0,043227 | 3772072 | 0 | 0,508865 | 0,0 | 1 | 0 | 0,773687 | 13 | 13 | 0 |
3 | 3.0 | 4 | 0,013699 | 1 | 0,744943 | NaN | 1 | 0,777778 | 870 | 35 | 0,002196 | 0,090022 | 1 | 1 | 1 | 0,0 | 45 | 0 | 1 | 0 | 0 | Arminia Bielefeld | 40 | 0 | 1 | 18 | 0,019468 | 0,0 | 24343 | 0,000000 | 0,002196 | 94.21667 | 1 | 1 | 0 | 0,019468 | 0 | 0 | 0,000000 | 1 | 0 | 1 | 2 | 0 | 0,750000 | 48 | 1 | NaN | 73 | 0 | 0 | 0 | 22 | 1 | 1 | NaN | 0 | 0,0 | 0,003043 | 0 | 2.234830 | 0,090022 | 0 | 0 | NaN | 0,003043 | 3 | 0 | 0,124760 | 0 | 0 | 0,000000 | 3 | Jacob Laursen | 0,000000 | 3772072 | 0 | 0,491135 | 0,0 | 0 | 1 | 0,124760 | 5 | 4 | 0 |
4 | 14,0 | 6 | 0,000 |