FIFA 23 Dataset

Python · Streamlit · Pandas · Kaggle

Python Streamlit Pandas Kaggle Data Viz

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

  1. Carregamento: Pandas carrega o CSV do Kaggle com dados de todos os jogadores
  2. Seleção de Time: Dropdown com todos os clubes disponíveis no dataset
  3. Seleção de Jogador: Filtro dinâmico que mostra apenas jogadores do time escolhido
  4. 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

17k+

Jogadores no Dataset

700+

Times Disponíveis

MIT

Licença Open Source

Entregáveis

Aprendizados