Descrição do Projeto
Aplicação interativa desenvolvida com Streamlit para exploração do dataset FIFA 23, contendo estatísticas de +17 mil jogadores. O usuário pode selecionar times e jogadores para visualizar métricas detalhadas como overall, pace, shooting, passing e valor de mercado.
Os dados foram obtidos do Kaggle (FIFA Player Stats Database) e o projeto demonstra habilidades em manipulação de dados com Pandas, construção de dashboards interativos e deployment de aplicações web com Streamlit.
Arquitetura da Aplicação
┌──────────────────────┐
│ Kaggle │
│ FIFA Player Stats │
│ Database (CSV) │
└──────────┬───────────┘
│ pandas.read_csv()
▼
┌──────────────────────┐
│ Processamento │
│ · Pandas DataFrame │
│ · Limpeza de dados │
│ · Filtros e seleção │
└──────────┬───────────┘
│
▼
┌──────────────────────┐
│ Streamlit App │
│ · Seleção de Time │
│ · Seleção Jogador │
│ · Métricas e Cards │
│ · Interface Web │
└──────────────────────┘
Fluxo da Aplicação
- Carregamento: Pandas carrega o CSV do Kaggle com dados de todos os jogadores
- Seleção de Time: Dropdown com todos os clubes disponíveis no dataset
- Seleção de Jogador: Filtro dinâmico que mostra apenas jogadores do time escolhido
- Visualização: Cards com métricas do jogador (overall, pace, shooting, passing, dribbling, value)
Stack Tecnológica
Linguagem & Bibliotecas
- Python 3.8+
- Pandas — manipulação de dados
- Streamlit — framework web
Fonte de Dados
- Kaggle — FIFA Player Stats DB
- Formato CSV
- 17 mil+ registros
Interface
- Streamlit — app web interativo
- Dropdowns dinâmicos
- Métricas em cards visuais
Métricas Exibidas
- Overall Rating
- Pace · Shooting · Passing
- Dribbling · Defending
- Valor de Mercado
Funcionalidades
Seleção de Time
Dropdown com todos os clubes carregados dinamicamente do dataset.
Seleção de Jogador
Filtro reativo que atualiza conforme o time escolhido, exibindo apenas jogadores do clube.
Cards de Estatísticas
Métricas visuais individuais para cada atributo do jogador selecionado.
Interface Responsiva
Layout adaptável do Streamlit que funciona em qualquer dispositivo.
Exemplo de Código
Carregamento e Interface
import streamlit as st import pandas as pd # Configuração da página st.set_page_config( page_title="FIFA 23 Dataset", page_icon="⚽", layout="wide" ) st.title("FIFA 2023 — Player Stats") # Carregar dataset do Kaggle df = pd.read_csv("fifa_player_stats.csv", sep=';') # Seleção de time clubes = sorted(df['Club'].unique()) clube = st.selectbox("Selecione um time:", clubes) # Filtrar jogadores do time jogadores_time = df[df['Club'] == clube] jogador = st.selectbox("Selecione um jogador:", jogadores_time['Name']) # Exibir estatísticas player = jogadores_time[jogadores_time['Name'] == jogador].iloc[0] col1, col2, col3, col4 = st.columns(4) col1.metric("Overall", player['Overall']) col2.metric("Pace", player['Pace']) col3.metric("Shooting", player['Shooting']) col4.metric("Passing", player['Passing'])
Como Executar
# Clonar repositório git clone https://github.com/anselmoaxo/dataset-fifa23.git # Instalar dependências pip install -r requirements.txt # Executar aplicação streamlit run app.py
Desafios e Soluções
1. Dataset com encoding variável
Desafio: CSV do Kaggle com separador ponto-e-vírgula e encoding não-UTF8.
Solução: Configuração de encoding e separador na leitura com Pandas para carregamento correto.
2. Filtros reativos com Streamlit
Desafio: Sincronizar dropdown de jogador conforme o time selecionado.
Solução: Uso do estado reativo do Streamlit com filtro encadeado no DataFrame.
3. Performance com dataset grande
Desafio: +17 mil registros com múltiplas colunas podem deixar a interface lenta.
Solução: Filtragem antecipada no DataFrame e cache do Streamlit para operações repetitivas.
Resultados
Jogadores no Dataset
Times Disponíveis
Licença Open Source
Entregáveis
- Aplicação Streamlit funcional com interface interativa e responsiva
- Dataset FIFA 23 processado e pronto para consultas analíticas
- Filtros dinâmicos de time e jogador com atualização em tempo real
- Código documentado e preparado para contribuições da comunidade
Aprendizados
- Construção de dashboards interativos com Streamlit de forma rápida e eficiente
- Manipulação de datasets do Kaggle com Pandas — leitura, limpeza e filtros
- Uso de componentes reativos do Streamlit para filtros encadeados
- Tratamento de encoding e formatos de arquivo em dados reais do Kaggle