Análise do mercado de transferências de futebol profissional modelado como grafo direcionado. O projeto mapeia 534 transferências entre 312 clubes (jan–ago 2025), aplica métricas de centralidade e detecção de comunidades para identificar perfis funcionais: formadores, importadores e intermediários.
Desenvolvido como projeto acadêmico na disciplina de Comunicação e Redes (UFABC) e refatorado para portfólio técnico público. O paper original está disponível aqui.
├── src/
│ ├── graph.py # coleta de dados e construção do grafo
│ ├── metrics.py # métricas do grafo e centralidades
│ ├── communities.py # detecção de comunidades (Louvain)
│ ├── visualization.py # plotagem e tabelas
│ └── export.py # exportação de tabelas para PNG
├── notebooks/
│ ├── 01_data_and_graph.ipynb # problema, coleta e construção
│ ├── 02_metrics.ipynb # métricas com narrativa acessível
│ └── 03_results.ipynb # achados, perfis e comunidades
├── outputs/ # visualizações geradas
├── .env.example # template de variáveis de ambiente
└── requirements.txt
Pré-requisitos: Python 3.11 e pyenv
git clone https://github.com/falcaoalvinho/football-transfer-network-analysis.git
cd football-transfer-network-analysisO pyenv seleciona o Python 3.11.0 automaticamente ao entrar no diretório (via .python-version). Em seguida, crie e ative o ambiente virtual:
# Linux/macOS
python -m venv .venv
source .venv/bin/activate
# Windows
python -m venv .venv
.venv\Scripts\activateInstale as dependências e configure as variáveis de ambiente:
pip install -r requirements.txt
cp .env.example .envEdite o .env com a URL da sua API:
API_URL=sua_url_aqui
Inicie o Jupyter e execute os notebooks em ordem:
jupyter notebookAtenção: os notebooks 02 e 03 dependem de executar o 01 na mesma sessão Jupyter — o grafo é persistido via
%storeentre eles.
Os dados foram coletados manualmente dos sites da ESPN e Transfermarkt e estruturados em uma planilha Google Sheets exposta como API REST via Sheety. Qualquer alteração na planilha reflete automaticamente em todas as execuções — a chave de acesso é configurada via variável de ambiente.
Python · NetworkX · Matplotlib · Pandas · NumPy · SciPy · Requests · python-dotenv · Jupyter
