image

Acesse bootcamps ilimitados e +650 cursos

50
%OFF
Article image

MQ

Madison Quedevez01/07/2023 18:46
Compartilhe

Ciência de Dados Descomplicada: Manipulando e Limpando Dados com Python

    image 

    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 ⁴. 

     

    image 

    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: 

    image  

     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: 

    image   

    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: 

     image 

    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 

    image 

    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.  

    image 

     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.  

    image 

    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: 

    image 

      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: 

               

    1. Pandas - Biblioteca de Análise de Dados Python (pydata.org) (https://pandas.pydata.org)
    2. Características de Pandas - Studytonight (https://www.studytonight.com/pandas/features-of-pandas
    3. O que é NumPy? — Manual do NumPy v1.25 (https://numpy.org/doc/stable/user/whatisnumpy.html
    4. Matplotlib — Visualização com Python 

     

    Compartilhe
    Comentários (2)
    Wellington Lacerda
    Wellington Lacerda - 01/07/2023 21:02

    Bibliotecas extremamente importantes no Python


    Muito bom

    MQ

    Madison Quedevez - 01/07/2023 18:59

    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