Projeto Python que coleta, transforma e analisa dados de Pokémon da PokeAPI, gerando relatórios CSV, gráficos e logs.
Este projeto demonstra um fluxo completo de ETL (Extração, Transformação, Carga) com dados de Pokémon. Ele gera relatórios em CSV e gráficos que mostram estatísticas e distribuição por tipo de Pokémon. Também implementa logging para monitorar a execução.
-
Extração de Dados: Busca informações detalhadas de Pokémon na PokeAPI.
-
Transformação de Dados:
- Identifica os 5 Pokémon com maior experiência base.
- Categoriza Pokémon por experiência (Fraco, Médio, Forte).
- Calcula média de HP, Ataque e Defesa por tipo.
- Conta a quantidade de Pokémon por tipo.
-
Geração de Relatórios: Salva dados em arquivos CSV.
-
Visualização de Dados: Cria gráficos usando
matplotlib
eseaborn
. -
Logging: Registra eventos, avisos e erros durante a execução.
. # Diretório raiz
├── main.py
├── requirements.txt
├── Dockerfile
├── src/
│ ├── __init__.py
│ ├── analyze.py
│ ├── extract.py
│ └── transform.py
├── data/
│ └── reports/
│ ├── relatorio_pokemon_top5.csv
│ ├── relatorio_pokemon_stats.csv
│ └── distribuicao_por_tipo_pokemon.png
├── logs/ # Logs gerados durante execução
- Python 3.x
requests
pandas
matplotlib
seaborn
logging
O projeto cria logs detalhados de execução no diretório logs/
:
-
Formato do log:
2025-09-27 14:00:00 [INFO] main: Iniciando execução do fluxo ETL 2025-09-27 14:00:05 [WARNING] extract: Pokémon X não encontrado 2025-09-27 14:00:10 [ERROR] transform: Falha ao calcular estatística
-
Onde são gerados:
- Localmente: dentro da pasta
logs/
do projeto. - Docker: montando o volume
-v $(pwd)/logs:/app/logs
, os logs são persistidos no host.
- Localmente: dentro da pasta
-
Vantagem: Permite monitorar erros, avisos e progresso sem precisar abrir o terminal.
- Clone o repositório e acesse o diretório:
git clone <https://github.com/Lindster-dev/pipeline_poke_api.git>
cd <pipeline_poke_api>
- Crie e ative um ambiente virtual:
python3 -m venv venv
source venv/bin/activate # Linux/macOS
# venv\Scripts\activate # Windows
- Instale dependências:
pip install -r requirements.txt
- Execute o projeto:
python main.py
- Os relatórios e gráficos serão gerados em
data/reports/
. - Os logs serão criados em
logs/
.
- Build da imagem Docker:
docker build -t pokemon-etl .
- Executar o container:
docker run --rm -v $(pwd)/data:/app/data -v $(pwd)/logs:/app/logs pokemon-etl
- Os volumes
-v
garantem que logs e relatórios fiquem no host, mesmo após o container ser removido. - O container executa
main.py
automaticamente.
Top 5 Pokémon por experiência base.
Estatísticas médias (HP, Ataque, Defesa) por tipo.
Gráfico de barras com distribuição de Pokémon por tipo.
- Arquivos de log detalhados por execução em
logs/
.