De acordo com a pesquisa “State of Data Science”, da empresa Anaconda, profissionais de dados gastam 38% do seu tempo apenas preparando os dados, antes mesmo de analisá-los. Segundo a Amazon, este percentual pode chegar até 80% dependendo do projeto. Estes números são uma triste realidade da qualidade de dados que analistas, cientistas e engenheiros de dados precisam lidar no dia a dia.
Infelizmente esta realidade não mudará da noite para o dia e os profissionais da área precisam utilizar ferramentas que tragam maior produtividade. Neste artigo, mostramos como ganhar mais tempo e diminuir o trabalho manual de preparação de dados. Tomando como exemplo a consolidação de mais de 70 planilhas de Excel diferentes e sem padrão, mostramos que o Python se destaca em tornar o fluxo de trabalho automatizado e reprodutível.
O problema
Imagine que você trabalhe com precificação e precise regularmente de dados atualizados sobre os preços de insumos/componentes que formam o preço do produto/serviço que você trabalha. Você tem acesso aos dados através de um site que centraliza as informações, mas tem alguns problemas:
- Os dados são publicados em múltiplos arquivos Excel…
- Os arquivos são segregados por tipo de produto/serviço, ano e mês…
- Os arquivos não tem um único padrão…
Nesta situação, se fossem menos do que meia dúzia de arquivos e para uma tarefa realizada uma única vez, você até poderia consolidar as planilhas usando o próprio Excel. No entanto, conforme a quantidade de arquivos e dados cresce ou quando a consolidação dos mesmos vira uma rotina frequente, o processo manual de consolidar as planilhas no Excel acaba sendo proibitivo.
Os dados
Vamos exemplificar esta situação com dados que são importantes para todos ou, pelo menos, a maioria dos brasileiros: preço da gasolina. Os dados de formação do preço da gasolina no Brasil são publicados no site da ANP e retratam exatamente a problemática descrita acima.
A imagem abaixo mostra uma das planilhas de Excel que queremos consolidar:
A ANP publica os dados de fevereiro de 2018 até (na data de escrita deste material) dezembro de 2023, o que totaliza 71 arquivos de Excel para consolidar.
Note que além dos problemas descritos acima, ainda poderíamos destacar que:
- O cabeçalho da tabela é dividido em 2 linhas;
- A tabela não começa na primeira linha;
- Metadados/notas informativas são acoplados na tabela.
Poderíamos pontuar vários outros pequenos problemas sobre a forma como estes dados são disponibilizados que acabam dificultando a vida de quem precisa utilizá-los de maneira sistemática, mas vamos pular para a parte em que saímos deste “inferno” das planilhas para o “paraíso” dos dados consolidados.
A solução
Para consolidar planilhas de Excel usando apenas o Python precisamos de:
- Arquivos disponibilizados (no nosso exemplo escrevemos um código, aqui omitido, para baixar tudo em uma pasta local);
- Ambiente de programação Python (aqui utilizamos Google Colab por praticidade e reprodutibilidade, que é acessível e gratuito para todos);
- Escrever um código que 1) lê os arquivos conforme o formato individual e 2) concatena os dados em uma única tabela (aqui utilizamos intensivamente o Pandas para fazer tudo isso).
O código abaixo realiza estes procedimentos iterando pela lista de arquivos (201802.xlsx, 201803.xlsx, etc.) para importar os dados usando um dicionário de especificações de leitura de cada arquivo. Este dicionário contém informações como “quantas linhas iniciais pular” e “quantas linhas finais deixar de fora”. No final do processo, que demora segundos, temos uma lista de tabelas importadas, que concatenamos em uma única tabela pronta para outros tratamentos e análises:
Para obter o código e o tutorial deste exercício faça parte do Clube AM e receba toda semana os códigos em R/Python, vídeos, tutoriais e suporte completo para dúvidas.
composicao preco_litro data
0 Preço do Produtor de Gasolina A Comum 1 1.098750 2018-02-01
1 Preço do Etanol Anidro 2 0.527763 2018-02-01
2 Custo de Transporte 0.096444 2018-02-01
3 Tributos Federais 3 0.686868 2018-02-01
4 Tributos Estaduais 4 1.186415 2018-02-01
.. ... ... ...
1 Preço do Etanol Anidro 2 0.598090 2023-12-01
2 Tributos Federais 3 0.686868 2023-12-01
3 Tributos Estaduais 4 1.226829 2023-12-01
4 Margem Bruta de Distribuição + Revenda 5 1.038228 2023-12-01
5 Preço ao Consumidor de Gasolina C Comum 5.580000 2023-12-01
[458 rows x 3 columns]
Agora com esta tabela de dados consolidados em segundos o céu é o limite. Você pode, por exemplo, fazer análises como esta:
Conclusão
Neste texto mostramos que o retorno de investimento em aprender Python se paga rapidamente: imagine consolidar dados de mais de 70 arquivos diferentes e sem padrão usando apenas Excel? É nestas horas que o Python se destaca em maior produtividade e menos trabalho manual.
Quer aprender mais?
Clique aqui para fazer seu cadastro no Boletim AM e baixar o código que produziu este exercício, além de receber novos exercícios com exemplos reais de análise de dados envolvendo as áreas de Data Science, Econometria, Machine Learning, Macroeconomia Aplicada, Finanças Quantitativas e Políticas Públicas diretamente em seu e-mail.