Pular para o conteúdo principal

Perfilamento do Pandas (ydata-profiling) em Python: Um guia para iniciantes

Saiba como usar a biblioteca ydata-profiling em Python para gerar relatórios detalhados para conjuntos de dados com muitos recursos.
24 de abr. de 2024  · 9 min de leitura

Ao lidar com um conjunto de dados, como um com 10.000 linhas e 50 colunas, obter uma visão geral rápida desses conjuntos de dados pode ser um desafio. É nesse ponto que o pandas Profiling é útil. Ele simplifica o processo gerando um relatório abrangente de seu conjunto de dados, minimizando o tempo de exploração desses grandes conjuntos de dados.

Neste artigo, você aprenderá como começar a usar o que antes era conhecido como pandas Profiling. O nome do pacote pandas-profiling foi recentemente alterado para ydata-profiling. Neste tutorial, você aprenderá a gerar um relatório de perfil a partir do conjunto de dados, o que está dentro do relatório de perfil, como ler esse relatório de perfil e, por fim, como salvar esse relatório para uso posterior.

O que é o pandas Profiling (ydata-profiling)?

O Pandas Profiling é usado para gerar um relatório completo e exaustivo para o conjunto de dados, com muitos recursos e personalizações no relatório gerado. Esse relatório inclui várias informações, como estatísticas do conjunto de dados, distribuição de valores, valores ausentes, uso de memória etc., que são muito úteis para explorar e analisar dados com eficiência.

O Pandas Profiling também ajuda muito na Análise Exploratória de Dados (EDA). A EDA é usada para entender a estrutura subjacente dos dados, detectar padrões e gerar percepções em um formato visual.

Para a EDA, temos que escrever muitas linhas de código, o que às vezes pode ser complexo e demorado, mas isso pode ser automatizado usando o Pandas Profiling com apenas algumas linhas de código.

Se você precisar de uma atualização sobre EDA, leia Python Exploratory Data Analysis.

Aqui está um exemplo de um relatório de perfil:

Visão geral do relatório de perfil do pandas

Imagem do autor

Vantagens e desvantagens da criação de perfis do pandas

A criação de perfil do Pandas é amplamente usada na EDA devido à sua facilidade de uso, eficiência de tempo e relatórios HTML interativos. No entanto, há algumas possíveis desvantagens no uso da criação de perfil do pandas com grandes conjuntos de dados.

Vantagens

  • Facilidade de uso: A criação de perfil do Pandas é muito fácil de usar. Você só precisa escrever algumas linhas de código para gerar um relatório abrangente.
  • Economia de tempo: A criação de perfil do Pandas pode criar um relatório abrangente com uma ampla gama de informações sobre um conjunto de dados com o mínimo de esforço. Isso o torna uma ótima opção para a EDA.
  • Relatórios HTML interativos: A criação de perfil do Pandas gera relatórios HTML interativos que são fáceis de analisar e entender. Os relatórios também permitem que você se aprofunde em variáveis específicas e explore suas distribuições.

Disadvantages

  • Desempenho com grandes conjuntos de dados: A principal desvantagem da criação de perfil do pandas está em seu desempenho com grandes conjuntos de dados. À medida que o volume de dados cresce, o tempo de geração de relatórios aumenta consideravelmente, tornando-o menos eficiente para a análise de dados em grande escala.

Instalação do pandas Profiling

Para instalar o pandas Profiling, você pode usar o pip ou o conda, dependendo de sua preferência e ambiente.

Usando o Pip:

Abra um prompt de comando ou terminal e execute o seguinte comando:

pip install ydata-profiling

Usando o Conda:

Abra o prompt do PowerShell do Anaconda e execute o seguinte comando:

conda install -c conda-forge ydata-profiling

Importando a criação de perfil do Pandas

Depois que a instalação for concluída com êxito, importe o site ydata-profiling usando a seguinte instrução.

from ydata_profiling import ProfileReport

Isso importará a classe ProfileReport da biblioteca ydata_profiling. Você pode usar essa classe para gerar relatórios de perfil para seus DataFrames.

Geração de relatório de perfil

Para gerar um relatório de perfil, siga as etapas abaixo:

  1. Importar pandas.
  2. Importe a classe ProfileReport da biblioteca ydata_profiling.
  3. Crie um DataFrame usando seus dados.
  4. Use a classe ProfileReport() e passe o DataFrame.

Aqui está o código simples que segue as etapas descritas acima. Primeiro, importamos as bibliotecas necessárias e, em seguida, lemos o arquivo CSV usando a função read_csv(). Nesse caso, estamos usando o arquivo CSV das 100 principais resenhas de livros mais vendidos. Em seguida, usamos a classe ProfileReport e passamos nosso DataFrame para dentro dela.

Além disso, estamos definindo um novo título, "Trending Books". Por padrão, o título é outro, mas se você quiser personalizá-lo, use a variável title dentro da classe. Por fim, para gerar e exibir o relatório, você pode usar profile ou profile.to_notebook_iframe().

código para gerar um relatório de perfil

O relatório será gerado na seguinte sequência: Primeiro, todo o conjunto de dados será resumido. Em seguida, a estrutura do relatório será gerada. Por fim, ele exibirá o relatório, que pode ser salvo como um arquivo HTML e usado para análise posterior.

A geração do relatório de perfil está em andamento.

Aqui está o relatório gerado, que inclui diferentes seções, como Overview (Visão geral), Variables (Variáveis), Interactions (Interações), Correlations (Correlações), Missing Values (Valores ausentes) e Sample (Amostra).

Visão geral completa do relatório de perfil com diferentes seções

Se você não conhece a EDA e, mais especificamente, a criação de perfis de dados, leia Exploratory Data Analysis of Craft Beers (Análise de dados exploratórios de cervejas artesanais): Perfil de dados.

Geração de relatório de perfil de exploração

O relatório é gerado em várias seções. Vamos explorar todas as seções, uma a uma.

Visão geral

Essa seção consiste em 3 guias: Visão geral, alertas e reprodução.

A guia Overview (Visão geral) inclui estatísticas do conjunto de dados, como o número de variáveis (ou o número de colunas diferentes), o número de células que têm valores ausentes, linhas duplicadas e o tamanho do conjunto de dados na memória.

Em nosso conjunto de dados, há um total de 8 variáveis ou colunas. Entre as variáveis, quatro são numéricas (posição, preço do livro, classificação e ano de publicação), enquanto as quatro restantes são baseadas em texto (título do livro, autor, gênero e URL). Não há linhas duplicadas, conforme mostrado por uma contagem de 0 para duplicatas. Além disso, a coluna "rating" tem três valores ausentes.

guia de visão geral da seção de visão geral do relatório

A guia Alertas consiste em alertas relacionados a correlações com outras variáveis, valores ausentes, valores exclusivos, zeros, etc.

Em nosso caso, as colunas URL e Rank têm valores exclusivos, e a coluna de classificação tem três valores ausentes.

guia de alerta da seção de visão geral

A guia Reprodução mostra quando a análise começou e quando terminou. Ele exibe a duração da análise, incluindo a versão do software que você está usando (no meu caso, é o ydata-profiling v4.6.1).

guia de reprodução da seção de visão geral

Variáveis

A seção Variables (Variáveis ) inclui todas as colunas do seu conjunto de dados. Você pode clicar na seta de alternância e selecionar qualquer coluna.

seção de variáveis com colunas diferentes

Supondo que você tenha selecionado a coluna de classificação, o relatório mostra que essa coluna contém 10 valores exclusivos distribuídos em 100 linhas. Além disso, três células não têm valor algum. O valor mínimo é 4,1, enquanto o máximo é 5. A média de todas as classificações também é exibida.

coluna de classificação da seção de variáveis

Uma observação importante: um botão More Details (Mais detalhes ) está localizado no canto inferior direito. Ao clicar nesse botão, é possível acessar mais informações sobre a coluna de classificação, como a mediana, o desvio padrão, o coeficiente de variação e várias outras características associadas à coluna.

Correlações

Ela ajuda no estudo da relação entre duas variáveis, o que é conhecido como correlação. O mapa de calor abaixo mostra as relações entre todas as variáveis entre si. A classificação está 100% relacionada à classificação, e é por isso que é representada pelo quadrado azul escuro no canto superior esquerdo.

O ano de publicação está moderadamente relacionado ao preço do livro (cerca de 0,75), que é representado pela cor azul claro porque não estão totalmente relacionados. Por exemplo, o preço do livro é 20,93 e o ano de publicação é 2023, portanto, esses números estão de certa forma relacionados entre si.

guia heatmap da seção de correlações

Valores ausentes

Esta seção fornece informações sobre os valores ausentes no conjunto de dados. A guia Contagem dessa seção indica que há 3 valores ausentes na coluna de classificação.

guia de contagem da seção de valores ausentes

Na guia Matrix da seção de valores ausentes, três linhas horizontais estão presentes na coluna Rating, o que indica que três valores estão ausentes na coluna.

guia matriz da seção de valores ausentes

Amostra

Esta seção contém uma amostra do conjunto de dados. Ele exibe as primeiras e as últimas 10 linhas do conjunto de dados.

primeira e última linhas da seção de amostra

Salvando o relatório de perfil

O relatório de perfil é gerado e talvez você queira salvá-lo para uso posterior, como extrair dados úteis do relatório de perfil ou integrá-lo a outros aplicativos. Você pode salvar o relatório nos formatos HTML e JSON. O método to_file() salvará o relatório fora do Jupyter Notebook.

O relatório está sendo gerado e salvo em um formato html e json

Aqui está o código completo para a criação de perfil do Pandas:

from ydata_profiling import ProfileReport
import pandas as pd

df = pd.read_csv("trending-books.csv")
profile = ProfileReport(df, title="Trending Books")
profile.to_notebook_iframe()
profile.to_file("books_data.html")

Usos avançados

Para gerar o relatório, simplesmente passamos o arquivo CSV e nada mais. Não incluímos nenhum elemento extra; apenas os valores padrão são usados nas ações.

No entanto, pode haver seções que você queira omitir ou incluir informações adicionais. É aqui que os usos avançados do Pandas Profiling entram em ação. Você pode controlar vários aspectos do relatório alterando a configuração padrão.

Se você estiver interessado em saber mais sobre ferramentas de análise e visualização de dados, leia 21 ferramentas essenciais do Python.

Descrição e metadados do conjunto de dados

Ao compartilhar relatórios com colegas de trabalho ou publicá-los on-line, pode ser importante incluir metadados do conjunto de dados, como o autor, o detentor dos direitos autorais ou as descrições. O site ydata-profiling permite complementar um relatório com essas informações.

As propriedades suportadas atualmente são description, creator, author, url, copyright_year e copyright_holder. Por padrão, os conjuntos de dados são apresentados na seção Visão geral do relatório.

from ydata_profiling import ProfileReport
import pandas as pd

df = pd.read_csv("trending-books.csv")
report = ProfileReport(
    df,
    title="Trending Books",
    dataset={
        "description": "This profiling report was generated for the datacamp learning resources.",
        "author": "Satyam Tripathi",
        "copyright_holder": "DataCamp, Inc.",
        "copyright_year": 2023,
        "url": "<https://www.datacamp.com/>",
    },
)
report.to_notebook_iframe()

Aqui está a saída do código:

guia conjunto de dados da seção de visão geral

Além de oferecer detalhes do conjunto de dados, os usuários geralmente desejam incluir descrições específicas da coluna ao compartilhar relatórios com membros da equipe e partes interessadas. Por padrão, essas descrições são apresentadas na seção Visão geral do relatório.

from ydata_profiling import ProfileReport
import pandas as pd

df = pd.read_csv("trending-books.csv")
report = ProfileReport(
    df,
    title="Trending Books",
    variables={
        "descriptions": {
            "genre": "It contains the genre or category of the book. For example, it could be 'Mystery', 'Science Fiction', 'Romance', 'Fantasy', etc.",
            "url": "It contains Amazon links for each book.",
            "rating": "It contains the rating assigned to the book out of 5.",
        }
    },
)
report.to_notebook_iframe()

Aqui está a saída do código:

guia de variáveis da seção de visão geral

Criação de perfis de grandes conjuntos de dados

Por padrão, o site ydata-profiling resume de forma abrangente o conjunto de dados de entrada para fornecer o máximo de insights para a análise de dados. Para conjuntos de dados pequenos, esses cálculos podem ser realizados rapidamente. No entanto, para conjuntos de dados maiores, isso pode se tornar muito complicado.

ydata-profiling inclui um arquivo de configuração mínimo em que os cálculos mais caros são desativados por padrão. Essa configuração exclui seções demoradas, como correlações, interações etc.

from ydata_profiling import ProfileReport
import pandas as pd

df = pd.read_csv("trending-books.csv")
report = ProfileReport(df, minimal=True)
report.to_notebook_iframe()

ydata-profiling também oferece várias alternativas para superar o desafio de lidar com grandes conjuntos de dados. Explore-os aqui.

Conclusão

No artigo, você aprendeu sobre a biblioteca exclusiva,ydata-profiling,, anteriormente conhecida como "Pandas Profiling", para criar relatórios com apenas algumas linhas de código. Você aprendeu a gerar o relatório de perfil e a explorar todas as seções e guias presentes no relatório de perfil. Mais importante ainda, você aprendeu sobre os usos avançados dessa biblioteca, o que o levará um passo à frente em sua jornada de ciência de dados.

O Pandas é a biblioteca Python mais popular do mundo, usada para tudo, desde a manipulação de dados até a análise de dados. Para saber como manipular DataFrames à medida que você extrai, filtra e transforma conjuntos de dados do mundo real para análise, confira nosso curso sobre Manipulação de dados com pandas.

Temas

Explorar mais usos de pandas

curso

Data Manipulation with pandas

4 hr
369K
Learn how to import and clean data, calculate statistics, and create visualizations with pandas.
Ver DetalhesRight Arrow
Iniciar Curso
Ver maisRight Arrow
Relacionado

blog

Uma introdução aos polares: Ferramenta Python para análise de dados em grande escala

Explore o Polars, uma biblioteca Python robusta para manipulação e análise de dados de alto desempenho. Saiba mais sobre seus recursos, suas vantagens em relação ao pandas e como ele pode revolucionar seus processos de análise de dados.
Moez Ali's photo

Moez Ali

9 min

Data Analyst surfing on wave of data

blog

9 Habilidades essenciais do analista de dados: Um guia de carreira abrangente

Aprenda habilidades essenciais de analista de dados, tanto técnicas quanto interpessoais, desde programação em Python até comunicação eficaz, para avançar em sua carreira.
Matt Crabtree's photo

Matt Crabtree

9 min

tutorial

Pandas Tutorial: DataFrames em Python

Explore a análise de dados com Python. Os DataFrames do Pandas facilitam a manipulação de seus dados, desde a seleção ou substituição de colunas e índices até a remodelagem dos dados.
Karlijn Willems's photo

Karlijn Willems

20 min

tutorial

21 ferramentas essenciais do Python

Aprenda sobre as ferramentas Python essenciais para o desenvolvimento de software, raspagem e desenvolvimento da Web, análise e visualização de dados e aprendizado de máquina.
Abid Ali Awan's photo

Abid Ali Awan

6 min

tutorial

Introdução à plotagem com Matplotlib em Python

Este tutorial demonstra como usar o Matplotlib, uma poderosa biblioteca de visualização de dados em Python, para criar gráficos de linha, barra e dispersão com dados do mercado de ações.

Kevin Babitz

25 min

tutorial

Histogramas no Matplotlib

Aprenda sobre histogramas e como você pode usá-los para obter insights dos dados com a ajuda do matplotlib.
Aditya Sharma's photo

Aditya Sharma

8 min

See MoreSee More