Ferramenta Streamlit para padronizar e renomear múltiplas colunas de arquivos CSV antes da análise automatizada
O Processador Intermediário de CSVs é uma aplicação desenvolvida em Python + Streamlit para padronizar arquivos CSV brutos provenientes de experimentos, máquinas de ensaio ou exportações de software.
O aplicativo permite selecionar várias colunas de um arquivo de amostra, renomeá-las e processar todos os arquivos de uma pasta com o mesmo padrão.
Ele foi projetado como uma etapa intermediária antes da análise principal (como o Caçador de Linearidade), criando arquivos de saída limpos e estruturados, prontos para uso.
| Função | Descrição |
|---|---|
| 🧾 Pré-visualização interativa | Mostra parte do arquivo bruto (definida pelo usuário) para identificar o início dos dados úteis. |
| 🧩 Seleção múltipla de colunas | Permite escolher várias colunas do arquivo e definir nomes personalizados para cada uma. |
| ✏️ Renomeação dinâmica | Cada coluna selecionada pode receber um nome customizado no próprio Streamlit. |
| ⚙️ Configuração de separador e codificação | Escolha manual ou automática de delimitador (;, ,, \t) e codificação (utf-8, latin-1, cp1252). |
| 🧼 Limpeza automática | Remove espaços, substitui vírgulas por pontos e converte valores numéricos. |
| 📉 Preview configurável | Define quantas linhas do arquivo serão exibidas, útil para casos com cabeçalhos longos. |
| 💾 Processamento em lote | Aplica o mesmo padrão de seleção e nomes a todos os arquivos .csv da pasta de entrada. |
- Python ≥ 3.9
- Bibliotecas:
streamlitpandas
pip install streamlit pandas- Coloque o arquivo
processador_intermediario_v4.pyem uma pasta do seu projeto. - Crie uma pasta com seus arquivos brutos (exemplo:
dados_brutos/). - Crie também uma pasta de saída (exemplo:
dados_processados/). - Execute o aplicativo com o comando:
streamlit run processador_intermediario_v4.py- O navegador abrirá automaticamente em
http://localhost:8501.
- Diretório de entrada: pasta com os arquivos
.csvbrutos. - Diretório de saída: onde os arquivos processados serão salvos.
Escolha um arquivo representativo para definir o padrão de leitura.
O preview mostrará apenas um trecho configurável do arquivo (útil para arquivos grandes ou com cabeçalho extenso).
- Separador: selecione
auto,;,,ou\t. - Codificação: escolha entre
auto,utf-8,latin-1oucp1252. - Linhas iniciais a ignorar: define quantas linhas de cabeçalho devem ser puladas.
- Tamanho do preview: quantas linhas visualizar após o cabeçalho.
- Use o painel interativo para selecionar várias colunas por índice.
- Dê um nome a cada coluna (por exemplo,
Tempo,Força,Deformação). - Veja o preview da tabela resultante com as colunas renomeadas.
- Clique em 🚀 Processar Todos os Arquivos.
- O app aplicará as mesmas configurações a todos os arquivos
.csvdo diretório de entrada. - O progresso é mostrado em tempo real, com relatório final de status e número de linhas processadas.
Cada arquivo processado gera um .csv com o mesmo nome no diretório de saída:
dados_processados/
├── 1.csv
├── 2.csv
├── 3.csv
└── ...
Cada arquivo conterá:
Coluna1,Coluna2,Coluna3
<valor1>,<valor2>,<valor3>
...
O app é dividido em módulos funcionais:
- Leitura robusta: tenta múltiplas codificações e detecta o separador.
- Preview rápido: lê apenas as primeiras N linhas (sem carregar tudo).
- Seleção dinâmica: permite múltiplas colunas e nomes personalizados.
- Normalização: limpa strings e converte vírgulas decimais.
- Exportação padronizada: salva apenas as colunas escolhidas, com nomes definidos.
- Lote: aplica o mesmo padrão a todos os arquivos da pasta de entrada.
- O preview não carrega o arquivo inteiro, apenas o trecho necessário para ajuste.
- Caso o arquivo possua cabeçalho longo, aumente o valor de “Linhas iniciais a ignorar” e/ou “Tamanho do preview”.
- A detecção automática de separador funciona bem na maioria dos casos, mas é possível selecionar manualmente.
- Os nomes dos arquivos de saída serão os mesmos dos originais, sobrescrevendo se já existirem no diretório de saída.
Suponha que você tenha um arquivo:
Tempo(s);Força(N);Deformação(mm)
0,001;123,45;-0,0012
0,002;124,80;-0,0015
Com as configurações:
- Separador:
; - Colunas selecionadas:
[0, 1, 2] - Nomes:
Tempo,Força,Deformação
O arquivo gerado será:
Tempo,Força,Deformação
0.001,123.45,-0.0012
0.002,124.80,-0.0015
Este projeto é distribuído sob a licença MIT.
Sinta-se à vontade para usar, modificar e integrar em outros sistemas de análise.
Desenvolvido para apoiar projetos de análise automatizada de dados experimentais,
como o Caçador de Linearidade Interativo.