Ciência de Dados Descomplicada: Manipulando e Limpando Dados com Python
- #Python
3. Apresentação das bibliotecas Pandas, NumPy e matplotlib.
Uma das principais bibliotecas utilizadas na manipulação e limpeza de dados é o Pandas. Essa biblioteca do Python fornece aos seus usuários várias ferramentas que permitem:
- Gerenciar e Explorar: com Series e DataFrame, ambos são maneiras eficientes e rápidas de gerenciar e explorar dados².
- Manipular dados ausentes (preenchimento de valores ausentes, remoção de valores ausentes, etc.) ¹.
- Indexar e alinhar os dados².
- Ler e Salvar: Ferramentas de entrada e saída para a leitura e gravação de dados em diferentes formatos².
- Limpar os dados: Remoção de duplicadas, remoção de colunas, etc¹.
- Ter suporte a vários formatos de arquivos: formato CSV, EXCEL, SQL, JSON, HTML, etc¹.
- Ter Múltiplos recursos para séries temporais¹.
- Fazer a junção e mesclagem de conjuntos de dados¹.
Uma outra biblioteca que desempenha um papel importante na manipulação de dados na Ciência de Dados é a NumPy. Conheça algumas características dessa biblioteca do Python:
- Objeto de array N-dimensional de alto desempenho: Esta é a característica mais importante da biblioteca NumPy. É o objeto de array homogêneo. Podemos realizar todas as operações nos elementos de array³.
- Contém ferramentas para integrar código de C/C++ e Fortran: A biblioteca Numpy permite chamar o código compilado de outras linguagens, o que aumenta a eficiência e a flaxibilidade³.
- Contém um contêiner multidimensional para dados genéricos: fornece um objeto ndarray, que encapsula arrays multidimensionais de tipos de dados homogêneos, com muitas operações sendo realizadas em código compilado para desempenho³.
- Operações Matemáticas em arrays: álgebra linear, transformada de Fourier, operações estatísticas, geração de números aleatórios, simulação aleatória etc³.
- Capacidade de definição dos dados para trabalhar com banco de dados Variados personalizados com diferentes fontes³.
Outra biblioteca importante na manipulação de dados na Ciência de Dados é Matplotlib que permite a visualização de dados em gráficos, histogramas, espectros de energia, dispersão, etc. Com essa biblioteca, é possível criar facilmente gráficos e visualizações para análise de dados. Algumas características importantes do Matplotlib incluem:
- Possibilidade de criação de diversos tipos de gráficos: Com o Matplotlib é possível criar uma grande variedade de gráficos - gráficos de linha, barra, pizza, histogramas, gráficos de dispersão, entre outros ⁴.
- Personalização de gráficos: existe uma grande variedade de opções de personalização de gráficos, permitindo a configuração de vários parâmetros como cores, fontes, tamanhos, rótulos, entre outros. Isso possibilita criar gráficos com visualizações altamente personalizadas ⁴.
- Integração com outras bibliotecas: O Matplotlib pode ser facilmente integrado com outras bibliotecas do Python como NumPy e Pandas, permitindo a criação de visualizações a partir de dados armazenados em arrays (NumPy), por exemplo ⁴.
- Suporte a múltiplos formatos de saída: permite a exportação dos gráficos criados em diversos formatos, como PNG, PDF, SVG, entre outros. Isso torna possível a criação de gráficos para diferentes tipos de uso, como apresentações, relatórios, publicações, entre outros ⁴.
- Facilidade de uso: Uma outra característica importante, apresenta uma boa documentação e muitos exemplos disponíveis. Isso torna possível mesmo para usuários iniciantes a criação de gráficos de alta qualidade ⁴.
4. Carregando e visualizando dados com Pandas e matplotlib.
O Pandas e o Matplotlib são duas bibliotecas populares na análise de dados com Python. O Pandas fornece estruturas de dados flexíveis e eficientes para manipular e analisar conjuntos de dados, enquanto o Matplotlib permite criar visualizações atraentes e informativas.
Para começar, o Pandas oferece várias funções para ler diferentes tipos de arquivos, como CSV, Excel, SQL, entre outros. Com apenas algumas linhas de código, podemos importar um arquivo e criar um DataFrame, que é uma estrutura de dados tabular do Pandas. Essa funcionalidade facilita a leitura e a manipulação de dados em formatos diversos, proporcionando uma base sólida para análise.
Uma vez que os dados estejam carregados no DataFrame, podemos utilizar as diversas funcionalidades do Pandas para explorá-los. Podemos realizar operações estatísticas, filtrar os dados, agrupá-los e muito mais. Além disso, o Pandas permite lidar com valores ausentes ou nulos de forma eficiente, o que é essencial para análises precisas e confiáveis.
Além disso, o Matplotlib também é compatível com o Pandas, o que torna a visualização de dados ainda mais fácil. Podemos plotar diretamente colunas ou séries de um DataFrame, facilitando a compreensão e a comunicação dos insights obtidos. Essa integração perfeita entre as duas bibliotecas permite uma análise de dados eficiente e a criação de visualizações atraentes.
Em resumo, carregar dados com o Pandas e visualizá-los com o Matplotlib é uma poderosa combinação para a análise de dados. O Pandas oferece recursos robustos para manipular e explorar os dados, enquanto o Matplotlib fornece ferramentas flexíveis para criar visualizações informativas. Juntos, eles permitem a compreensão dos dados de forma mais clara e agradável, facilitando a tomada de decisões baseadas em insights sólidos.
5. Filtrando e selecionando dados com base em critérios específicos.
Quando se trata de processamento de dados, filtrar e selecionar dados com base em critérios específicos é uma tarefa comum, e o Python oferece diversas ferramentas e bibliotecas que permitem realizar essa tarefa de forma eficiente. Neste texto, vou apresentar algumas maneiras de filtrar e selecionar dados usando Python.
Uma das formas mais simples de filtrar dados é utilizando condicionais. Você pode percorrer os dados e verificar se cada elemento satisfaz determinado critério. Por exemplo, vamos supor que temos uma lista de números e queremos filtrar apenas os números pares. Podemos fazer isso da seguinte maneira:
Nesse exemplo, utilizamos um loop “for” para percorrer cada número da lista “numeros”. Em seguida, verificamos se o número é par utilizando a condição “numero % 2 == 0”. Se for par, o número é adicionado à lista “numeros_pares”. Para visualizar o resultado usamos “print(numeros_pares)” e imprimimos a lista.
No entanto, o Python oferece uma maneira mais concisa e poderosa de filtrar e selecionar dados utilizando compreensão de listas. Com compreensão de listas, podemos criar uma nova lista com base em uma expressão e uma condição. O exemplo anterior pode ser reescrito da seguinte forma:
Nesse exemplo, utilizamos a compreensão de listas para criar a lista “numeros_pares” diretamente, sem a necessidade de um loop explícito. A expressão “numero for numero in numeros” define que queremos adicionar cada número à nova lista. Em seguida, utilizamos a cláusula “if numero % 2 == 0” para filtrar apenas os números pares.
Além das compreensões de listas, o Python também oferece outras estruturas de dados que facilitam o filtro e a seleção de dados. Uma delas é o “filter”, que permite filtrar elementos de uma sequência com base em uma função de filtro. Por exemplo, vamos filtrar apenas os números maiores que 5 de uma lista:
Nesse exemplo, utilizamos a função “filter” em conjunto com uma função “lambda” para verificar se cada número é maior que 5. A função “filter” retorna um objeto iterável que contém apenas os elementos da sequência original que atendem ao critério definido.
A partir desses exemplos fica fácil notar que não existe uma única forma (ou fórmula mágica) para filtrar, selecionar os dados e criar novas listas. A melhor escolha a maioria das vezes é o jeito mais simples que atenda a necessidade de momento.
6. Lidando com valores ausentes e dados duplicados
Verificar se há dados faltantes e dados duplicados é uma etapa crucial no pré-processamento de dados, e isso pode tomar um certo tempo principalmente em caso de bancos de dados com muitas colunas. A presença de valores faltantes pode levar a resultados distorcidos e prejudicar bastante a eficácia dos modelos de Machine Learning. Da mesma forma, dados duplicados podem gerar vieses e reduzir a eficiência do modelo. Neste contexto, o uso do Python oferece várias ferramentas e técnicas para tratar essas questões.
Os problemas relacionados a valores ausentes é justamente a falta de informações em certas colunas. E essas informações podem ou não ser relevantes. A primeira solução ‘drop’ é a remoção das linhas com valores faltantes, mas isso pode levar à perda de informações importantes. Outra abordagem é preencher os valores ausentes com estatísticas descritivas, como a média, a mediana ou moda.
Algo que também não é muito incomum são os dados duplicados, encontrar registros repetidos em conjuntos de dados, o que pode introduzir viés e impactar negativamente o desempenho dos modelos de Machine Learning. O Python oferece recursos para identificar e remover linhas duplicatas de maneira eficiente. É possível utilizar a função “duplicated()” para identificar linhas duplicadas e, em seguida, utilizar a função “drop_duplicates()” para remover essas linhas do conjunto de dados.
Um bom pré-processamento de dados pode contribuir significativamente para os resultados de Machine Learning. Além de lidar com valores ausentes e dados duplicados, outras etapas importantes incluem a normalização ou padronização de atributos, a codificação de variáveis categóricas, a detecção e tratamento de outliers, entre outras.
É importante destacar que a o tamanho do banco de dados na maioria das vezes é que vai definir se vamos eliminar linhas ou se vamos complementar com alguma informação. E quando se fala em completar com média, mediana ou moda uma boa prática é utilizar um outra coluna para filtrar. Um exemplo, tenho uma coluna [idade] e nela tenho algumas linhas não preenchidas, posso usar a média e/ou mediana da coluna idade filtrando pelo sexo, localização ou qualquer outra coluna que faça sentido.
7. Transformação de dados: Aplicando funções e operações em colunas.
Em muitos casos os dados brutos precisão ser transformados para que possam ser utilizados. A transformação de dados é uma etapa essencial em qualquer análise ou manipulação de conjuntos de dados. Uma forma comum de transformação é a aplicação de funções e operações em colunas específicas, permitindo a criação de novas informações ou a modificação dos valores existentes.
Uma das principais tarefas na transformação de dados é a aplicação de funções e operações em colunas. Isso pode ser feito usando a biblioteca pandas do Python. A biblioteca pandas possui uma estrutura de dados chamada DataFrame que permite a manipulação de dados em tabelas.
Para aplicar funções em colunas do DataFrame, podemos usar a função apply(). Ela permite aplicar uma função personalizada em cada elemento da coluna e podemos usar funções integradas do Python como sum() ,mean(), max(), min() e muitas outras.
O pandas possui também a função map para manipular colunas. Ela aplica uma função em cada elemento da coluna e retorna uma nova coluna com os resultados. Outra função do pandas para manipular colunas é a função transform(). A função transform() permite que os dados de uma coluna sejam transformados com base em uma função ou operação. Com a função transform(), podemos aplicar funções personalizadas ou integradas do Python em uma coluna e retornar os resultados em uma nova coluna ou substituir a coluna original pelos resultados transformados.
8. Agregação e resumo de dados.
Agregação e resumo de dados é uma técnica importante na análise de dados que permite resumir dados em uma única observação ou estatística. No Python, podemos usar a biblioteca pandas para realizar operações de agregação e resumo de dados em um DataFrame.
Uma das principais funções para agregação de dados é a função groupby do pandas. Essa função permite agrupar os dados por uma ou mais colunas e aplicar funções de agregação, como sum(), mean(), count(), max() e min() para resumir os dados.
Uma outra função de agregação do pandas é a função pivot_table(). Essa função permite criar uma tabela dinâmica que resume os dados em uma ou mais dimensões, podemos agrupar os dados por uma ou mais colunas e aplicar funções de agregação para resumir os dados.
Uma excelente função de resumo de dados é a função describe() retorna um resumo estatístico dos dados, incluindo a contagem, média, desvio padrão, mínimo e máximo de cada coluna do DataFrame.
Além das funções mencionadas acima, o pandas oferece muitas outras funções de agregação e resumo de dados, incluindo rolling() que permite calcular estatísticas em janelas móveis de dados, e resample(), que permite resumir dados de séries temporais em intervalos de tempo diferentes. Com essas funções, podemos realizar uma variedade de operações de agregação e resumo de dados para obter informações valiosas sobre nossos dados.
Aqui está um exemplo de como usar a função groupby() para realizar uma operação de agregação em um DataFrame:
9. Considerações finais
A compreensão da importância da limpeza e manipulação dos dados na jornada da ciência de dados é algo impressindível para se alcançar bons resultados. Essas etapas são fundamentais para garantir a qualidade e confiabilidade dos dados utilizados em projetos de ciência de dados e, consequentemente, garantir resultados mais precisos e otimizados.
Em meio aos desafios encontrados na área de ciência de dados, a qualidade dos dados extraídos para análise é sempre uma grande incógnita. Então é preciso seguir as etapas de limpeza e manipulação dos dados. Eu costumo criar um checklist para auxiliar o controle do andamento, anotar observações etc. Ter um controle do andamento se torna bastante útil principalmente quando estamos lidando com bancos de dados com dezenas, centenas, e em alguns casos até milhares de colunas.
Espero que este artigo tenha sido útil para entender a importância da limpeza e manipulação dos dados na ciência de dados e como o Python pode ser uma ferramenta poderosa para realizar essas etapas de forma eficiente e eficaz. Bons Estudos!
10. REFERÊNCIAS:
- Pandas - Biblioteca de Análise de Dados Python (pydata.org) (https://pandas.pydata.org)
- Características de Pandas - Studytonight (https://www.studytonight.com/pandas/features-of-pandas)
- O que é NumPy? — Manual do NumPy v1.25 (https://numpy.org/doc/stable/user/whatisnumpy.html)
- Matplotlib — Visualização com Python




Bibliotecas extremamente importantes no Python
Muito bom
MQ
teve um trecho inicial do artigo que não ficou aparecendo, já tentei editar mas não está carregando, casso alguém queira ler a 1.introdução e 2. Benefícios de usar Python para manipulação e limpeza dos dados deixo o link para acessar o arquivo completo.
ciência de dados descomplicada