1. Importância do tratamento de dados

Antes de falarmos sobre a importância do tratamento de dados, é preciso citar a importância dos próprios dados para as organizações. Eles já são considerados o novo ouro, pois ajudam os líderes na tomada de decisões com base em fatos, números estatísticos e tendências.
É, então, nesse contexto que surge a ciência de dados (ou data science). Ela utiliza abordagens científicas, procedimentos, algoritmos e estrutura para extrair o conhecimento e a percepção de uma enorme quantidade de dados. Esses dados, quando extraídos, podem ser estruturados ou não estruturados. É nesse momento que o tratamento de dados toma forma. Para de fato analisar, alimentar outras bases de dados já existentes, ou mesmo softwares de Business Inteligence como o PowerBI ou o Tableau, é necessário que os dados sejam tratados a fim de serem padronizados. Daí a importância do tratamento de dados.

2. Python como linguagem para tratamento de dados

A linguagem Python tem fama recente, quando se tornou muito utilizada, principalmente no meio acadêmico, há uma década e é comumente citada como a linguagem de programação mais fácil de ler e aprender. Nesse sentido, a linguagem é conhecida por fazer os programas funcionarem com o menor número possível de linhas de código.
O Python identifica e associa automaticamente tipos de dados e segue uma estrutura de alinhamento baseada em recuo. No geral, a linguagem é fácil de usar e leva menos tempo para codificar uma solução do que nas outras linguagens. Algumas pessoas chamam o Python de “o canivete suíço da codificação”, pois é muito versátil. Somado a isso, há ainda o fato da linguagem estar constantemente sendo melhorada e sua sinergia com algoritmos escritos em outras linguagens de programação fez com que ele se tornasse líder em data science.
Com relação às suas funcionalidades, a linguagem faz praticamente tudo que você precisar: coleta de dados, engenharia de dados, análise, construção de aplicativos web e muito mais. A linguagem também está lentamente se tornando útil para tarefas em Machine Learning e de base para o trabalho estatístico (anteriormente apenas sob o domínio da linguagem R).
O Python também conta com um servidor “notebook” baseado na web chamado Jupyter que permite que você programe em um formato de livro de registro que pode ser compartilhado diretamente pelo navegador.
Para o tratamento de dados, em que a primeira fase é a coleta e limpeza de dados, o Python é extremamente versátil, pois permite a leitura dos dados nos mais variados formatos, como CSV , TSV e JSON. Também não para por aí, é possível, ainda, importar tabelas SQL ou criar qualquer site facilmente com ele e suas bibliotecas dedicadas, como PyMySQL e BeautifulSoup, respectivamente.
Na segunda fase do tratamento de dados, isto é, a limpeza e a exploração de dados ocorre a substituição de valores incongruentes, eliminação de dados desnecessários e edição de valores faltantes. Duas bibliotecas muito utilizadas para executar esse trabalho são o Pandas e o NumPy.
Então, na terceira e última etapa, a exploração permite a verificação se todos dados estão padronizados. Agora, com os dados limpos, pode-se utilizar outras bibliotecas do Python ou softwares (de Business Intelligence, por exemplo) para a ciência de dados e tomada de decisões.

3. Bibliotecas usadas no tratamento de dados

Essa linguagem de programação popular possui um grande número de bibliotecas gratuitas de ciência de dados, aprendizado de máquina e análise de dados, como Pandas ou Scikit-Learn. Assim como outras bibliotecas que irão nos auxiliar na construção e manipulação de nossos códigos, sendo estas Numpy, Listdir, datetime entre outras. Na sequência veremos mais detalhadamente essas bibliotecas.

Pandas
Em programação de computadores, pandas é uma biblioteca de software criada para a linguagem Python para manipulação e análise de dados. Em particular, oferece estruturas e operações para manipular tabelas numéricas e séries temporais. O nome é derivado do termo inglês “panel data” (dados em painel), um termo usado em estatística e econometria para conjunto de dados que incluem várias unidades amostrais (indivíduos, empresas, etc) acompanhadas ao longo do tempo.
Algumas características básicas e exemplos de funcionalidade da biblioteca pandas destacam-se o uso do objeto “DataFrame” para manipulação de dados com indexação integrada, alinhamento de dados e manipulação de dados ausentes, inserir e deletar colunas em conjuntos de dados, ferramentas para fundir (merging) ou juntar (join) conjuntos de dados, filtração e limpeza de dados dentre outros. Dessa forma, a biblioteca Pandas torna-se uma das ferramentas de análise de dados de código aberto mais poderosas e flexíveis disponíveis.

Numpy
O Numpy, assim como o pandas, também é uma poderosa biblioteca criada para a linguagem Python que é usada principalmente para realizar cálculos em Arrays Multidimensionais (estruturas de dados semelhantes às listas, porém não tão flexíveis). O NumPy fornece um grande conjunto de funções e operações de biblioteca que ajudam os programadores a executar facilmente cálculos numéricos.
Tais cálculos numéricos são amplamente utilizados em tarefas como por exemplo em modelos de machine learning, onde ao escrever algoritmos, vários cálculos numéricos em array são realizados, como por exemplo, multiplicação de arrays, transposição, adição, etc. Os Arrays NumPy são usado para armazenar os dados de treinamento, bem como os parâmetros dos modelos de Machine Learning.
Outras funcionalidades importantes do NumPy destacam-se o processamento de imagem e computação gráfica, sendo úteis no espelhamento de imagem, rotação de uma imagem por um determinado ângulo, dentre outros. Além disso, o NumPy é famoso por desempenhar tarefas matemáticas, tais como integração numérica, diferenciação, interpolação, extrapolação e muitas outras. O NumPy possui também funções incorporadas para álgebra linear e geração de números aleatórios.

Listdir e Datetime
Algumas bibliotecas auxiliares no tratamento de dados utilizando Python destacam-se a Datetime e Listdir.

Scikit-Learn
Caso você já tenha despertado interesse na linguagem Python e esteja inclinado a saber mais sobre programação aplicada a Machine Learning, essa biblioteca com certeza merece sua atenção, mas antes, é importante sabermos um pouco mais sobre alguns conceitos fundamentais de Machine Learning.
Quando falamos de aprendizado de máquina ou somente Machine Learning, é preciso ficar claro que estamos tratando de problemas de aprendizado de máquina a um sistema de produção. Tais problemas consistem em trabalhar um conjunto de n amostras de dados e tentar prever propriedades de dados ainda desconhecidos, se cada amostra é mais do que um número único e, por exemplo, uma entrada multidimensional, diz-se que ela possui vários atributos ou recursos. Dessa forma, a biblioteca scikit-learn entra como uma forte candidata a ser utilizada para resolvermos problemas dessa categoria.
Inicialmente desenvolvida em um projeto de código de verão do Google em 2007, a biblioteca Scikit-Learn surgiu com intuito de fornecer uma variedade de algoritmos de aprendizado supervisionado e não supervisionado por meio de uma interface consistente em Python, essa biblioteca é construída a partir do SciPy(Scientific Python) que deve ser instalado antes que você possa usar o scikit-learn, tal pacote inclui outras bibliotecas, tais como NumPy, SciPy, Matplotlib, Pandas entre outras.
Como podemos ver, além de acessível para todos e utilizada em vários contextos, scikit-learn trata-se de uma biblioteca muito versátil, com muitas funcionalidades, simples e eficiente para análises de dados preditivos. Podemos destacar algumas utilidades e aplicações principais tais como:
Classificação: Utilizada para identificar qual categoria um objeto pertence. Destacam-se detecção de spam e reconhecimento de imagens como principais aplicações;
Regressão: Usado para prever um atributo de valor contínuo associado a um objeto. Destacam-se Resposta a Medicamentos e Preços das Ações como principais aplicações;
Agrupamento: Usado para agrupamento automático de objetos semelhantes em conjuntos. Segmentação de clientes, Agrupando resultados de experiências são algumas das principais aplicações;
Redução de dimensionalidade: Usado para reduzir o número de variáveis aleatórias a serem consideradas. Visualização e Maior Eficiência destacam-se como principais aplicações;
Seleção de Modelo: Utilizado para comparar, validar e escolher parâmetros e modelos. Como sua principal aplicação temos a precisão aprimorada via ajuste de parâmetros;
Pré-processamento: Usado para a extração e normalização de recursos. Transformar dados de entrada, como texto, para uso com algoritmos de machine learning destaca-se como principal aplicação.

4. Alternativa para quem não tiver afinidade com programação

Além das linguagens de programação já mencionadas e suas bibliotecas específicas para tratamento de dados, existem diversas ferramentas capazes de atingir resultados similares e que são amplamente utilizadas no mercado. Mas em que consistem ferramentas de ETL?
Diferentemente das linguagens de programação, o tratamento de dados usando ferramentas faz o uso de passos de transformação. Estes funcionam de modo similar às funções das linguagens de programação, tendo em vista que atuam de modo linear, uma ação de cada vez. Mas diferentemente das linguagens onde os condicionantes e delimitadores são dependentes e variáveis a cada função, em uma ferramenta isto é simplificado. Possuindo ações diretas e auto-explicativas, proporcionando agilidade e facilidade. Algumas ferramentas são o Pentaho, Skyvia e Xplenty.
Estes fatos garantem usos diferentes para cada alternativa. As ferramentas pelo fato de não necessitarem de um treinamento muito aprofundado, garantem que mais pessoas sem formação como a de engenheiro de dados, até na transformação dos mesmos. Assim você pode capacitar mais pessoas para efetuar a transformação sem necessitar uma ampla bagagem de conhecimento. Podendo capacitar profissionais para transformarem os seus dados para análise, sem a necessidade de ter um setor de TI que precise sempre assessorar as atividades dos analistas.
As linguagens de programação são únicas no que diz respeito a sua composição, pois se utiliza de números e caracteres para efetuar ações. Assim sendo, é necessária uma predisposição do indivíduo que vai a utilizar para compreender e fazer uso de sua lógica na totalidade. Compreensão da lógica matemática é indispensável para o indivíduo que queira aprender a programar.
O tempo de criação da aplicação é muito diferente de um método para o outro. Sendo que para criar uma aplicação usando uma ferramenta, não é necessário despender de muito tempo. Mas para se criar uma aplicação utilizando uma linguagem de programação, é necessário mais tempo, pela necessidade da escrita das funções e da sua adequação à tarefa e parâmetros necessários. Além do fato de normalmente acontecem erros na execução, que são mais difíceis de serem localizados quando a aplicação for extensa.
Umas das vantagens das linguagens de programação é a sua capacidade de se moldar às necessidades do problema. Pela sua flexibilidade de execução decorrente da sua estrutura, mais soluções para o mesmo problema podem ser encontradas, além de se conseguir fazer coisas as quais as ferramentas têm limitações.
Outra diferença fundamental entre usar ferramentas e linguagens de programação, são as fontes de informação. Tradicionalmente todas as linguagens de programação possuem diversos fóruns, sites e vídeos que ajudam os seus usuários a resolverem problemas. Já as ferramentas possuem poucos espaços do tipo. Pelo seu uso limitado a função de ETL e pela quantidade delas disponível, assim dificultando o acesso a resoluções.
A programação além do uso para o tratamento de dados, tem outras inúmeras funcionalidades, que garantem ao programador, uma capacidade de resolução de problemas muito grande. Com usos em aprendizado de máquina e previsão de demanda, a programação é a espinha dorsal da tecnologia digital, garantindo ao profissional versado nela, muitas oportunidades.