Skip to content

Latest commit

 

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎮 FC 26 (FIFA 26) Player Data Analysis

Projeto de análise de dados de jogadores do EA Sport's FC 26 para a disciplina de Tópicos Especiais em Programação.

📋 Descrição do Projeto

Este projeto realiza análises exploratórias e visualizações de dados sobre jogadores de futebol do FC 26, utilizando Python com paradigma de Orientação a Objetos (OOP), Pandas para ETL e Matplotlib para visualizações.

🎯 Objetivos

  • Aplicar conceitos de Programação Orientada a Objetos
  • Realizar processos de ETL (Extract, Transform, Load)
  • Criar visualizações significativas de dados
  • Implementar operações de agregação (group by)
  • Desenvolver análises estatísticas sobre jogadores de futebol

📁 Estrutura do Projeto

fc26_analysis/
├── README.md                          # Este arquivo
├── dataset.txt                        # Referências do dataset
├── .gitignore                         # Arquivos ignorados pelo Git
│
├── src/                               # Código fonte (módulos Python)
│   ├── __init__.py                    # Inicializador do pacote
│   ├── data_loader.py                 # Classe para carregamento de dados
│   ├── data_transformer.py            # Classe para transformações
│   └── visualizer.py                  # Classe para visualizações
│
├── notebooks/                         # Notebooks Jupyter
│   ├── 01_ratings_por_posicao.ipynb   # Análise por posição
│   ├── 02_top_clubes.ipynb            # Top clubes
│   ├── 03_evolucao_idade.ipynb        # Evolução por idade
│   ├── 04_analise_ligas.ipynb         # Análise de ligas
│   └── 05_distribuicao_ratings.ipynb  # Distribuição de ratings
│
└── data/                              # Dados (não incluído no Git)
    └── fc26_players.csv               # Dataset principal

🛠️ Tecnologias Utilizadas

  • Python 3.8+
  • Pandas - Manipulação e análise de dados
  • Matplotlib - Visualização de dados
  • NumPy - Operações numéricas
  • Jupyter Notebook - Ambiente de desenvolvimento

📊 Notebooks Desenvolvidos

1️⃣ Notebook 01 - Ratings por Posição

  • Objetivo: Analisar a média de ratings por posição dos jogadores
  • Group By: Posição
  • Gráfico: Barras
  • Insights: Identificar posições com melhores avaliações

2️⃣ Notebook 02 - Top Clubes

  • Objetivo: Identificar os melhores clubes por rating médio
  • Group By: Clube
  • Gráfico: Pizza
  • Insights: Distribuição de qualidade entre clubes de elite

3️⃣ Notebook 03 - Evolução por Idade

  • Objetivo: Comparar overall vs potential por faixa etária
  • Group By: Faixa etária
  • Gráfico: Linha (2 séries)
  • Insights: Curva de desenvolvimento dos jogadores

4️⃣ Notebook 04 - Análise de Ligas

  • Objetivo: Comparar métricas ofensivas e defensivas por liga
  • Group By: Liga
  • Gráfico: Barras agrupadas (2 séries)
  • Insights: Características táticas de cada liga

5️⃣ Notebook 05 - Distribuição de Ratings

  • Objetivo: Analisar distribuição geral de ratings
  • Gráfico: Histograma
  • Insights: Padrão de distribuição da qualidade dos jogadores

🚀 Como Usar

Pré-requisitos

# Instalar dependências
pip install -r requirements.txt

Passo a Passo

  1. Clone ou baixe o projeto

    cd fc26_analysis
  2. Baixe o dataset do Kaggle

    • Acesse: [FC 26 Player Data no Kaggle]
    • Coloque o arquivo CSV na pasta data/
  3. Execute os notebooks

    jupyter notebook
  4. Abra os notebooks na pasta notebooks/

🎓 Conceitos de OOP Aplicados

Classes Principais

  1. DataLoader (Singleton Pattern)

    • Responsabilidade única: Carregar dados
    • Garante uma única instância
    • Métodos: load_data(), get_data(), get_info()
  2. DataTransformer

    • Responsabilidade única: Transformar dados
    • Method chaining para operações sequenciais
    • Métodos: group_by_aggregate(), clean_data(), filter_data()
  3. DataVisualizer

    • Responsabilidade única: Criar visualizações
    • Encapsula lógica de plotagem
    • Métodos: plot_bar_chart(), plot_line_chart(), plot_pie_chart(), plot_histogram()

Princípios SOLID Aplicados

  • Single Responsibility: Cada classe tem uma responsabilidade
  • Open/Closed: Classes abertas para extensão, fechadas para modificação
  • Encapsulation: Dados e métodos encapsulados

📈 Análises Realizadas

Operações de Group By (4 notebooks)

  • Agrupamento por posição
  • Agrupamento por clube
  • Agrupamento por faixa etária
  • Agrupamento por liga

Tipos de Gráficos (3 tipos)

  • Gráfico de barras
  • Gráfico de linhas
  • Gráfico de pizza

Gráficos com 2 Séries (2 notebooks)

  • Overall vs Potential
  • Métricas ofensivas vs defensivas

Histograma (1 notebook)

  • Distribuição de ratings

📝 Requisitos Atendidos

  • ✅ 5 notebooks desenvolvidos
  • ✅ 4 notebooks com group by
  • ✅ 3 tipos de gráficos (linha, barra, pizza)
  • ✅ 2 notebooks com 2 séries em Y
  • ✅ 1 notebook com histograma
  • ✅ Extração, Transformação e Carga (ETL)
  • ✅ Visualizações com Matplotlib
  • ✅ Explicações em Markdown
  • ✅ Arquivo dataset.txt com referências
  • ✅ .gitignore configurado
  • ✅ Uso de Orientação a Objetos

👨‍💻 Autor

[Lucas Galvão Freitas]
Disciplina: Tópicos Especiais em Programação - ECOX14
Data: Outubro 2025

📄 Licença

Este projeto é para fins educacionais e de pesquisa.

🔗 Referências


Nota: Os dados são excluídos do repositório Git conforme especificado no .gitignore.

About

ECOX14 Discipline FIrst Project Repo

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages