Jak eksportować statystyki meczu do własnej analizy

Poradnik: jak legalnie pobrać i wyeksportować statystyki meczu do CSV/Excela. Źródła (FBref, Understat), xG, narzędzia analizy i najczęstsze błędy.

Czym są statystyki meczu i jakie dane można eksportować

Statystyki meczu to zbiór mierzalnych zdarzeń z jednego spotkania – od posiadania piłki i liczby strzałów po xG i mapy podań. Do eksportu nadają się dane podstawowe (wynik, strzały, faule, kartki) oraz dane zaawansowane, takie jak event data opisujące każde zagranie. Według FBref (Sports Reference, 2025) typowy raport meczowy zawiera kilkanaście kolumn gotowych do pobrania jako CSV.

Z mojej praktyki przy analizie pojedynczych meczów ekstraklasy wystarczają dane podstawowe wzbogacone o xG. Dopiero przy modelach predykcyjnych sięgam po pełne event data. Zanim klikniesz „eksportuj”, warto wiedzieć, co właściwie trzymasz w arkuszu – bo nie każda liczba znaczy to samo u różnych dostawców.

Jakie dane meczowe można eksportować?

Eksportowi podlega kilka warstw danych, od najprostszych po surowe zdarzenia. Wybór zależy od tego, czy robisz szybkie porównanie, czy budujesz model.

    • Dane wynikowe – gole, asysty, minuty zdobycia bramek, ostateczny rezultat.
    • Statystyki zbiorcze – posiadanie piłki w procentach, strzały, strzały celne, rzuty rożne, faule, spalone.
    • Metryki zaawansowane – xG (expected goals), xGA, PPDA, dokładność podań w procentach.
    • Event data – lista pojedynczych zdarzeń (podanie, strzał, drybling) z współrzędnymi na boisku, dostępna m.in. w StatsBomb Open Data.
    • Tracking data – pozycje wszystkich zawodników w czasie, rzadko dostępne za darmo.

Dla amatorskiej analizy pierwsze trzy warstwy załatwiają 90% potrzeb. Event data zostaw na moment, gdy nauczysz się czytać co oznacza xG i statystyki zaawansowane.

Co oznacza xG w statystykach meczu?

xG (expected goals) to oczekiwana liczba bramek – metryka oceniająca jakość sytuacji strzeleckich w skali od 0 do 1 dla pojedynczego strzału. Strzał z pola karnego po dośrodkowaniu może mieć xG 0,12, a sytuacja sam na sam nawet 0,7. To prawdopodobieństwo gola, nie sam gol.

Kluczowa różnica: xG to nie liczba strzałów celnych ani faktycznych goli. Drużyna może wygrać 1:0, mając xG 0,4 przeciwko 2,1 rywala – i wtedy wiesz, że miała szczęście. Wartości xG różnią się między Opta, Understat i StatsBomb, bo każdy używa innego modelu, o czym piszę niżej.

Czym różnią się dane meczowe od sezonowych?

Dane meczowe opisują jedno spotkanie, dane sezonowe agregują dziesiątki meczów na poziomie drużyny lub zawodnika. To rozróżnienie decyduje o tym, którą tabelę eksportujesz.

    • Dane meczowe pobierasz pod konkretny mecz – przydają się do analizy taktycznej jednego spotkania.
    • Dane sezonowe pobierasz dla porównań formy, rankingów strzelców czy trendów xG w czasie.
    • Dane zawodnika łączą obie warstwy – np. suma xG napastnika w 30 meczach.

Skąd legalnie pozyskać statystyki meczu

Legalne źródła statystyk meczu dzielą się na darmowe serwisy z eksportem (FBref, Understat, StatsBomb Open Data) oraz płatne API komercyjne (Opta od Stats Perform, pełne dane StatsBomb). Do analizy własnej najszybciej zaczniesz od FBref, który pod każdą tabelą udostępnia opcję pobrania danych jako CSV – to potwierdzona funkcja serwisu Sports Reference (2025).

Reguła, którą stosuję od lat: zawsze sprawdzam licencję i regulamin źródła przed pobraniem. Darmowe nie znaczy „rób co chcesz”. Poniższa tabela porównuje najczęściej używane źródła.

ŹródłoKosztEksport CSVZakres danychDla kogo
FBref (Sports Reference)DarmoweTak, wbudowanyStatystyki zbiorcze + xG (Opta)Początkujący i średniozaawansowani
UnderstatDarmoweCzęściowyxG dla 6 czołowych ligAnaliza xG
FlashScore / SofaScoreDarmoweBrak / ograniczonyStatystyki podglądowe na żywoSzybki podgląd
StatsBomb Open DataDarmoweJSON (GitHub)Event data wybranych rozgrywekEdukacja, analiza zaawansowana
Opta (Stats Perform)PłatneAPIPełne dane komercyjneProfesjonaliści, kluby

Gdzie znajdę darmowe statystyki meczu?

Najlepsze darmowe źródła to FBref, Understat oraz StatsBomb Open Data, a każde sprawdza się w innym zadaniu. FBref bazuje na danych Opta i daje gotowy eksport, Understat specjalizuje się w xG, a StatsBomb udostępnia surowe event data.

    • FBref – tabele meczowe z xG, posiadaniem i podaniami; przycisk udostępniania tabeli pozwala pobrać ją w formacie arkusza.
    • Understat – dane xG dla Premier League, La Liga, Bundesligi, Serie A, Ligue 1 i RPL, z wykresami strzałów.
    • FlashScore i SofaScore – świetne do podglądu na żywo, ale eksport jest ograniczony; bliżej im do aplikacji ze statystykami meczów na żywo niż do bazy do pobrania.
    • StatsBomb Open Data – darmowe repozytorium na GitHubie z pełnymi zdarzeniami wybranych turniejów.

Dane sprawdzone: czerwiec 2026, na podstawie publicznie dostępnych funkcji wymienionych serwisów. Interfejsy bywają aktualizowane, więc zweryfikuj aktualny układ przycisków u źródła.

Czy dane Opta są dostępne za darmo?

Nie bezpośrednio – Opta (Stats Perform) to dostawca komercyjny, którego pełne API jest płatne. Część danych Opta trafia jednak do darmowych serwisów takich jak FBref, który prezentuje je w ramach umowy licencyjnej. To droga pośrednia, ale wystarczająca dla analityka amatora.

„StatsBomb Open Data to darmowo udostępniony zbiór danych zdarzeniowych przeznaczony do celów badawczych i edukacyjnych.” – StatsBomb Open Data, repozytorium GitHub, 2025

StatsBomb stosuje inny model: część danych otwiera publicznie, resztę sprzedaje klubom. Dla nauki to bezcenne, bo dostajesz prawdziwe event data bez kosztów.

Jak wyeksportować statystyki do CSV lub Excela

Najprostszy sposób to FBref: pod każdą tabelą jest opcja pobrania danych jako CSV, który następnie importujesz do Excela z kodowaniem UTF-8. Alternatywnie zaznacz tabelę i wklej do Google Sheets, pamiętając o ujednoliceniu separatora dziesiętnego, by liczby nie uległy przekłamaniu (źródło: FBref / Sports Reference, 2025).

Trudność rośnie wraz z automatyzacją – kopiuj-wklej opanujesz w minutę, API wymaga podstaw programowania. Pokażę cztery metody od najłatwiejszej.

Jak skopiować tabelę ze strony do arkusza?

Zacznij od zaznaczenia całej tabeli kursorem, skopiuj skrótem Ctrl+C i wklej do arkusza – to działa w 9 na 10 przypadków. Problem pojawia się przy liczbach z separatorami.

    • Zaznacz tabelę od nagłówka do ostatniego wiersza danych.
    • Skopiuj zawartość (Ctrl+C lub Cmd+C na Macu).
    • W Excelu użyj „Wklej specjalnie” i wybierz tekst, by uniknąć formatowania HTML.
    • Sprawdź kolumny liczbowe – jeśli xG 0,45 zamieniło się na datę, popraw format komórki na liczbowy.

Z mojej praktyki kopiuj-wklej najczęściej psuje liczby dziesiętne: polski Excel interpretuje kropkę jako separator tysięcy. Dlatego zaraz po wklejeniu robię „Znajdź i zamień” kropki na przecinki w kolumnach xG.

Jak wyeksportować statystyki przez API do pliku CSV?

Eksport przez API zaczyna się od pobrania danych zapytaniem HTTP, a kończy zapisem do pliku jednym poleceniem – w Pythonie to dosłownie kilka linii z biblioteką pandas. Ta metoda ma sens, gdy pobierasz dziesiątki meczów naraz.

    • Wyślij zapytanie do endpointu danych (np. publiczne API serwisu lub gotowa biblioteka jak soccerdata).
    • Wczytaj odpowiedź do struktury DataFrame w pandas.
    • Zapisz poleceniem df.to_csv(„mecz.csv”, encoding=”utf-8″), by od razu ustawić poprawne kodowanie.
    • Zweryfikuj liczbę wierszy z oficjalnym podsumowaniem meczu.

Przy API zawsze czytam dokumentację limitów zapytań – przekroczenie progu kończy się blokadą IP. To częsta pułapka początkujących, którzy puszczają pętlę po 380 meczach bez opóźnień.

Jak zaimportować dane do Excela i Google Sheets?

W Excelu użyj zakładki Dane, a następnie „Z pliku tekstowego/CSV” – kreator pozwoli ustawić kodowanie i separator zanim dane wpadną do arkusza. W Google Sheets wybierz Plik, potem Importuj.

    • W Excelu: Dane → Pobierz dane → Z pliku → CSV, wybierz kodowanie 65001: Unicode (UTF-8).
    • Ustaw ogranicznik na przecinek lub średnik, w zależności od pliku.
    • W Google Sheets: Plik → Importuj → Prześlij, zaznacz „Wykryj automatycznie” dla separatora.
    • Sprawdź pierwsze trzy wiersze – polskie nazwy drużyn jak „Górnik” muszą wyświetlać się bez krzaczków.

Czy można legalnie scrapować statystyki meczu

Same dane faktyczne, jak wynik czy liczba strzałów, nie są chronione prawem autorskim, ale ich uporządkowane zbiory mogą podlegać prawu sui generis do baz danych według Dyrektywy 96/9/WE. Do użytku osobistego ryzyko jest mniejsze niż komercyjnego – zawsze sprawdź regulamin serwisu i plik robots.txt.

To temat YMYL, więc podchodzę ostrożnie. Poniżej rozkładam go na czynniki, ale traktuj to jako orientację, nie wyrok.

Czy dane meczowe są chronione prawem autorskim?

Nie – pojedynczy fakt, że mecz skończył się 2:1, nie jest utworem i nie podlega prawu autorskiemu. Chroniona może być natomiast struktura i nakład pracy włożony w zbudowanie bazy danych.

„Ochrona prawem sui generis przysługuje producentowi bazy danych, który wykazał istotną inwestycję w uzyskanie, weryfikację lub prezentację jej zawartości.” – parafraza założeń Dyrektywy 96/9/WE w sprawie ochrony prawnej baz danych, Dz.U. UE L 77/20, 1996

W prawie polskim odpowiada za to Ustawa o ochronie baz danych z 27 lipca 2001 r. (Dz.U. 2001 nr 128 poz. 1402). Producent bazy może zakazać pobierania istotnej części jej zawartości – i to ten przepis, a nie prawo autorskie, najczęściej dotyczy masowego scrapingu statystyk.

Jak scrapować dane odpowiedzialnie?

Zacznij od sprawdzenia, czy serwis w ogóle na to pozwala – regulamin i robots.txt to pierwsze dwa miejsca, które otwieram. Dopiero potem myślę o technice.

    • Przeczytaj regulamin (Terms of Service) – jawny zakaz scrapingu wiąże umownie, niezależnie od prawa autorskiego.
    • Sprawdź plik robots.txt pod adresem domeny – wskazuje, które ścieżki są zamknięte dla botów.
    • Preferuj oficjalne API i źródła open data jak StatsBomb Open Data, które mają jasną licencję.
    • Ogranicz tempo zapytań, by nie obciążać serwera – to też kwestia kultury, nie tylko prawa.
    • Nie udostępniaj dalej pobranych zbiorów komercyjnie bez zgody producenta bazy.

Treść ma charakter informacyjny i nie zastępuje konsultacji z prawnikiem specjalizującym się w prawie autorskim i ochronie baz danych. Przy zastosowaniach komercyjnych taka konsultacja jest po prostu tańsza niż spór.

Jak przygotować dane do analizy (xG, posiadanie, podania)

Przygotowanie danych to trzy kroki: czyszczenie surowego pliku, normalizacja liczb i typów kolumn oraz walidacja względem oficjalnego podsumowania meczu. Bez tego nawet najlepszy wykres pokaże bzdury, bo „Legia” i „Legia Warszawa” potraktujesz jako dwie drużyny.

Reguła, której nigdy nie łamię: surowe dane trzymam w osobnym arkuszu, a wszystkie przekształcenia robię na kopii. Raz nadpisana kolumna xG potrafi zmarnować godzinę pracy.

Które metryki są najważniejsze do analizy własnej?

Do analizy własnej kluczowe są xG i xGA (oczekiwane bramki strzelone i stracone), posiadanie piłki, dokładność podań oraz PPDA mierzące presję. Zawsze porównuj te wartości z oficjalnym podsumowaniem meczu, by wychwycić błędy eksportu.

    • xG i xGA – pokazują jakość sytuacji, nie tylko ich liczbę; różnica xG a goli mówi o efektywności.
    • Posiadanie piłki (%) – kontekstowe; wysokie posiadanie bez xG bywa puste.
    • Dokładność podań (%) – sygnalizuje styl gry, niska wartość może oznaczać dużo długich piłek.
    • PPDA – liczba podań rywala na jedną akcję obronną; im niższa, tym intensywniejszy pressing.
    • Kolumny pochodne – np. strzały na bramkę podzielone przez xG, by ocenić skuteczność wykończenia.

Jeśli dopiero uczysz się czytać te liczby, zacznij od materiału jak czytać statystyki meczu piłkarskiego, zanim zbudujesz pierwszy wykres.

Jak czyścić i normalizować dane meczowe?

Czyszczenie zaczynam od usunięcia pustych wierszy i ujednolicenia nazw – to fundament, bez którego sumy się nie zgodzą. Normalizacja to głównie poprawa separatorów i typów kolumn.

    • Usuń wiersze sumujące i puste komórki, które serwisy wstawiają dla czytelności.
    • Ujednolić nazwy drużyn i zawodników (jeden zapis „FC Barcelona”, nie trzy warianty).
    • Zamień separator dziesiętny zgodnie z ustawieniami arkusza (przecinek w polskim Excelu).
    • Ustaw typy kolumn – liczby jako liczbowe, daty jako daty, drużyny jako tekst.
    • Zwaliduj sumy: liczba strzałów w arkuszu musi zgadzać się z podsumowaniem meczu.

Narzędzia do analizy statystyk meczu

Do analizy statystyk meczu wystarczy Excel lub Google Sheets dla pojedynczych spotkań, a Python z pandas dla wielu sezonów i automatyzacji. Power BI i Tableau wchodzą do gry, gdy potrzebujesz interaktywnych dashboardów. Wybór zależy od skali, nie od prestiżu narzędzia.

Z mojej praktyki: dla jednego meczu odpalanie Pythona to przerost formy – tabela przestawna w arkuszu daje odpowiedź szybciej. Sytuacja odwraca się przy 300 meczach.

Kiedy wystarczy Excel, Google Sheets lub Power BI?

Excel i Google Sheets wystarczają, gdy analizujesz do kilkunastu meczów i chcesz szybkich wykresów oraz tabel przestawnych. Power BI dokładasz, gdy dane mają trafić do interaktywnego raportu dla innych.

    • Excel / Google Sheets – tabele przestawne, wykresy słupkowe i punktowe, formuły warunkowe; próg wejścia bliski zera.
    • Power BI – dashboardy z filtrami, łączenie wielu plików, automatyczne odświeżanie źródeł.
    • Tableau – zaawansowana wizualizacja, mapy ciepła strzałów, prezentacje dla zespołu.

Dla większości czytelników szukających widgetu wyników na żywo na telefonie arkusz w chmurze będzie aż nadto.

Czy potrzebuję Pythona lub R do analizy?

Nie na start – programowanie przydaje się dopiero przy automatyzacji i analizie wielu sezonów. Python z pandas i R z tidyverse pozwalają budować własne modele xG i powtarzalne raporty.

    • Python (pandas, matplotlib) – pobieranie danych przez API, czyszczenie, własne modele; biblioteki mplsoccer i StatsBombPy rysują boisko i mapy podań.
    • R (tidyverse) – analiza statystyczna, regresje, eleganckie wykresy w ggplot2.
    • Bez kodu – jeśli analizujesz okazjonalnie, zostań przy arkuszu i dodatkach do wizualizacji.

Najczęstsze błędy przy eksporcie danych meczowych

Najczęstsze błędy przy eksporcie to złe kodowanie znaków, pomylony separator dziesiętny oraz mieszanie xG od różnych dostawców. Każdy z nich da się wykryć w minutę, jeśli wiesz, czego szukać. Pokażę je z perspektywy błędów, które sam popełniałem.

Jeden błąd potrafi przekreślić całą analizę – dlatego walidacja względem oficjalnego podsumowania to nie luksus, tylko obowiązek.

Dlaczego dane mają krzaczki po eksporcie?

Krzaczki zamiast polskich liter to klasyczny problem kodowania – plik zapisano w UTF-8, a Excel otworzył go w Windows-1250 lub odwrotnie. Rozwiązanie zajmuje chwilę.

    • Przy imporcie jawnie wybierz kodowanie 65001: Unicode (UTF-8).
    • Jeśli plik już otwarty wygląda źle, zaimportuj go ponownie przez kreator zamiast dwuklikiem.
    • Zapisując własny CSV, ustaw encoding=”utf-8-sig”, by Excel od razu rozpoznał kodowanie.

Czemu xG różni się między serwisami?

Każdy dostawca – Opta, Understat, StatsBomb – używa własnego modelu xG opartego na innych danych treningowych, więc ten sam strzał dostaje różne wartości. Dlatego nie wolno porównywać xG z dwóch źródeł jak liczb z jednej skali.

„Modele xG różnią się przyjętymi zmiennymi i danymi uczącymi, dlatego wartości z różnych dostawców nie są bezpośrednio porównywalne.” – parafraza dokumentacji StatsBomb Open Data, 2025

Najczęstszy błąd, jaki widuję u początkujących, to zestawienie xG drużyny z Understat i rywala z FBref. Wybierz jedno źródło i trzymaj się go w całej analizie. Pamiętaj też o kontekście – czerwona kartka w 20. minucie albo dogrywka potrafią całkowicie wypaczyć surowe liczby.

Najczęściej zadawane pytania

Gdzie pobrać darmowe statystyki meczu?

Najlepsze darmowe źródła to FBref z eksportem CSV, Understat z danymi xG oraz StatsBomb Open Data dla wybranych rozgrywek. FBref ma wbudowaną opcję pobierania tabel i bazuje na danych Opta. StatsBomb udostępnia surowe event data na GitHubie do celów edukacyjnych.

Jak wyeksportować statystyki do Excela?

Na FBref pobierz tabelę jako CSV, a następnie zaimportuj plik do Excela przez Dane → Z pliku CSV, ustawiając kodowanie UTF-8. Możesz też skopiować tabelę i wkleić ją bezpośrednio do arkusza. Po imporcie sprawdź separator dziesiętny, by liczby xG nie zamieniły się w daty.

Czy scrapowanie statystyk meczu jest legalne?

Dane faktyczne jak wynik nie są chronione prawem autorskim, ale ich zbiory mogą podlegać prawu sui generis do baz danych według Dyrektywy 96/9/WE i polskiej Ustawy z 2001 r. Do użytku osobistego ryzyko jest mniejsze niż komercyjnego; zawsze sprawdź regulamin serwisu i robots.txt. Treść nie zastępuje konsultacji z prawnikiem.

Co to jest xG w statystykach meczu?

xG (expected goals) to oczekiwana liczba bramek – metryka oceniająca prawdopodobieństwo zdobycia gola z danej sytuacji w skali 0-1. Wartości różnią się między dostawcami (Opta, Understat, StatsBomb), bo każdy używa innego modelu. Z tego powodu nie należy mieszać xG z dwóch różnych źródeł.

Dlaczego dane po eksporcie mają krzaczki?

To problem kodowania znaków – plik zapisano w UTF-8, a program otworzył go w innym standardzie. Przy imporcie CSV jawnie ustaw kodowanie UTF-8 (65001) i sprawdź separator dziesiętny. Wtedy polskie litery i liczby wyświetlą się poprawnie.

Czy potrzebuję programowania do analizy statystyk?

Nie. Do pojedynczych meczów wystarczy Excel lub Google Sheets z tabelami przestawnymi i wykresami. Python z pandas przydaje się dopiero przy analizie wielu sezonów lub automatyzacji pobierania danych. Programowanie to wygoda przy skali, nie warunek wejścia.

Czemu xG różni się między serwisami?

Każdy dostawca trenuje własny model xG na innych danych i z innymi zmiennymi, więc ten sam strzał dostaje różne wartości. Dlatego nie należy porównywać xG pochodzących z dwóch różnych źródeł. Wybierz jedno źródło i konsekwentnie używaj go w całej analizie.

Źródła i literatura

    • FBref (Sports Reference) – dane meczowe i eksport CSV, fbref.com, 2025.
    • StatsBomb Open Data – repozytorium event data, github.com/statsbomb/open-data, 2025.
    • Understat – dane xG dla głównych lig, understat.com, 2025.
    • Dyrektywa 96/9/WE Parlamentu Europejskiego i Rady w sprawie ochrony prawnej baz danych, eur-lex.europa.eu, Dz.U. UE L 77/20, 1996.
    • Ustawa o ochronie baz danych z 27 lipca 2001 r., Dz.U. 2001 nr 128 poz. 1402.

Dane sprawdzone: czerwiec 2026. Funkcje eksportu serwisów oraz stan prawny ochrony baz danych warto weryfikować co najmniej raz w roku, ponieważ interfejsy i przepisy bywają aktualizowane.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Wymagane pola są oznaczone *