Uma plataforma unificada que acompanha o cientista de dados desde o primeiro contato com um CSV até a geração de um dataset limpo e pronto para modelagem. Explore, analise, limpe e transforme seus dados através de uma interface 100% visual, interativa e não-destrutiva.
Este projeto nasceu da necessidade de unificar as etapas iniciais e mais repetitivas do ciclo de vida de um projeto de dados. Em vez de alternar entre notebooks para análise e scripts para limpeza, esta ferramenta oferece uma workstation completa em Streamlit.
Ela permite que o usuário execute todo o fluxo de trabalho de forma visual e controlada:
- Análise Exploratória (EDA): Entenda a estrutura, a qualidade e a distribuição dos seus dados.
- Análise Estatística: Calcule métricas fundamentais para validar hipóteses e guiar as próximas etapas.
- Pré-processamento Avançado: Aplique transformações complexas com a segurança de poder desfazer qualquer ação e a capacidade de exportar todo o fluxo de trabalho.
O grande diferencial é o sistema de edição não-destrutiva com pipeline reutilizável, que une a flexibilidade da análise manual com as melhores práticas de MLOps e automação.
- Upload de CSV
- Relatório exploratório
- Gráficos automáticos
Para testar rapidamente, use o arquivo de exemplo disponível no kaggle:
- Upload intuitivo de arquivos
.csv. - Visualização interativa do DataFrame completo.
- Análise de tipos de dados, contagem de nulos e uso de memória por coluna.
- Geração de gráficos de distribuição para entender as features visivelmente.
- Cálculo de estatísticas descritivas (média, mediana, desvio padrão, quartis) para colunas numéricas.
- Visualização de correlações através de heatmaps.
- Geração de boxplots para análise de outliers e comparação de distribuições.
- Tratamento de Nulos: Estratégias de remoção ou preenchimento (média, mediana, moda, etc.).
- Remoção de Duplicatas: Limpeza de registros repetidos.
- Conversão de Tipos: Correção de tipos de dados de colunas.
- Codificação de Categóricas: Suporte a Label Encoding e One-Hot Encoding.
- Escalonamento de Numéricas: Normalização (Min-Max) e Padronização (Standard Scaler).
- ↩️ Desfazer Ilimitado: Desfaça qualquer transformação com um único clique.
- 📄 Pipeline Exportável: Salve todos os passos em um arquivo
.jsonpara reuso e automação. - ⚙️ Processamento em Lote: Aplique um pipeline salvo a um novo dataset instantaneamente.
- 🐍 Python: A linguagem base para toda a lógica.
- 🎈 Streamlit: Para a criação da interface web interativa.
- 🐼 Pandas: Para a manipulação e estruturação dos dados.
- 🤖 Scikit-Learn: Para as operações de escalonamento e codificação.
- 📦 NumPy: Para cálculos numéricos eficientes.
Para executar este projeto localmente, siga os passos abaixo.
-
Clone o repositório:
git clone git@github.com:j-pdro/csv_inspector.git cd csv_inspector -
Crie e ative um ambiente virtual (Recomendado):
# Para Windows python -m venv venv .\venv\Scripts\activate # Para macOS/Linux python3 -m venv venv source venv/bin/activate
-
Instale as dependências:
pip install -r requirements.txt
-
Execute a aplicação Streamlit:
streamlit run app.py
A aplicação abrirá automaticamente no seu navegador padrão!
- Carregue seus Dados: Inicie a aplicação e faça o upload de um arquivo
.csv. - Explore e Transforme: Navegue pelas abas (
Tratar Nulos,Duplicatas,Tipos de Dados, etc.) para aplicar as transformações desejadas. - Controle Suas Ações: Use os botões "Desfazer Última Ação" ou "Resetar DataFrame" a qualquer momento.
- Visualize e Baixe: Na aba "Visualizar/Baixar Interativo", você pode:
- Ver uma prévia do seu DataFrame transformado.
- Analisar as informações e tipos de dados.
- Baixar o CSV processado.
- Baixar o pipeline de transformações (
.json) que você criou.
- Automatize com o Pipeline: Na aba "Aplicar Pipeline em Lote", carregue o arquivo
.jsonsalvo e um novo CSV para aplicar as mesmas transformações instantaneamente.
O pipeline salvo é um arquivo JSON legível que descreve cada passo aplicado. Ele é a "receita" do seu pré-processamento.
Exemplo de estrutura:
[
{
"operation_name": "Remoção de Linhas Duplicadas",
"parameters": {
"details": "Todas as duplicatas removidas (mantendo a primeira ocorrência)."
}
},
{
"operation_name": "Escalonamento de Colunas Numéricas",
"parameters": {
"columns_to_scale": [
"idade",
"salario"
],
"method": "Min-Max Scaler (Normalização)"
}
}
]Este projeto está em desenvolvimento ativo. Aqui estão algumas das funcionalidades planejadas:
- Implementar sistema de Undo para todas as operações.
- Adicionar mais estratégias de tratamento de nulos (ex: interpolação).
- Implementar funcionalidade de Remoção de Colunas.
- Implementar funcionalidade de Renomear Colunas.
- Adicionar mais opções de Feature Engineering (ex: criação de colunas a partir de operações matemáticas).
- Integrar visualizações (gráficos) para dar feedback instantâneo sobre o impacto de cada transformação.
- Escrever testes unitários com
pytestpara garantir a robustez das funções de backend.
Contribuições são o que tornam a comunidade de código aberto um lugar incrível para aprender, inspirar e criar. Qualquer contribuição que você fizer será muito bem-vinda.
- Faça um Fork do projeto.
- Crie uma Branch para sua feature (
git checkout -b feature/AmazingFeature). - Faça o Commit de suas alterações (
git commit -m 'Add some AmazingFeature'). - Faça o Push para a Branch (
git push origin feature/AmazingFeature). - Abra um Pull Request.
Distribuído sob a licença MIT. Veja LICENSE para mais informações. Ao usar ou contribuir para este projeto, você concorda com os TERMOS DE USO e com o ACORDO DE LINCEÇA DO CONTRIBUIDOR. Por favor, leia estes documentos antes de usar ou enviar contribuições.


