Análise de Estrutura de Dados com df.info() no Pandas

O método df.info() é uma ferramenta essencial na biblioteca Pandas para Python que fornece um resumo conciso sobre um DataFrame. Ele é especialmente útil para entender a estrutura dos dados, tipos de colunas e valores não nulos.

O que é df.info()?

O método info() exibe um resumo informativo sobre um DataFrame, incluindo:

  • O número de entradas (linhas) no DataFrame
  • O número de colunas
  • Os nomes das colunas e seus tipos de dados
  • O número de valores não nulos em cada coluna
  • O uso de memória pelo DataFrame

Exemplo básico de uso:

Saída esperada do código acima:

Informações Fornecidas pelo df.info()

Estrutura do DataFrame

A primeira parte da saída do info() mostra informações gerais sobre o DataFrame:

Informações Gerais:

  • Classe: Tipo do objeto (geralmente pandas DataFrame)
  • RangeIndex: Número de linhas e intervalo de índices
  • Data columns: Número total de colunas

Detalhes das Colunas:

  • Coluna: Nome de cada coluna
  • Non-Null Count: Contagem de valores não nulos
  • Dtype: Tipo de dados de cada coluna

Interpretação da Saída:

A saída do info() permite identificar rapidamente:

  1. Valores faltantes (comparando Non-Null Count com o total de linhas)
  2. Tipos de dados inadequados (ex: números armazenados como strings)
  3. O tamanho total do DataFrame na memória

Parâmetros do df.info()

O método info() aceita vários parâmetros para personalizar sua saída:

Parâmetros Principais:

  • verbose: Se True, mostra todos os detalhes
  • buf: Buffer de escrita (útil para salvar a saída)
  • max_cols: Número máximo de colunas a mostrar
  • memory_usage: Especifica como mostrar o uso de memória
  • show_counts: Se True, mostra contagem de não nulos
  • null_counts: Se True, mostra contagem de nulos (obsoleto)

Exemplos de Uso:

Relação com Outras Funções do Pandas

O df.info() complementa outras funções de análise de dados do Pandas:

Enquanto df.describe() fornece estatísticas descritivas dos dados, df.info() foca na estrutura e metadados do DataFrame.

Para uma análise completa, é comum usar:

  1. df.info() para entender a estrutura
  2. df.describe() para estatísticas descritivas
  3. df.head() para visualizar as primeiras linhas
  4. df.isnull().sum() para contagem detalhada de valores nulos

Em R, as funções equivalentes para obter informações sobre a estrutura de dados são:

Quando e Como Usar df.info()

Análise Exploratória Inicial

Use info() como uma das primeiras etapas na análise de dados para entender a estrutura do DataFrame.

Identificação de Valores Faltantes

Use info() para identificar rapidamente colunas com valores missing.

Otimização de Memória

Use info() com memory_usage=’deep’ para analisar o uso de memória e otimizá-lo.

Exemplo Prático Completo

Vamos explorar um exemplo prático de uso do df.info() em um conjunto de dados mais complexo:

Em R, podemos realizar uma análise similar com:

⚠️ Limitações e Considerações

Embora df.info() seja extremamente útil, é importante entender suas limitações:

  • Não mostra valores únicos ou distribuição de dados categóricos
  • Não fornece informações sobre correlações entre variáveis
  • Para DataFrames muito grandes, pode consumir tempo e memória consideráveis
  • Não substitui uma análise exploratória completa dos dados

Conclusão

O método df.info() é uma ferramenta essencial no fluxo de trabalho de análise de dados com Pandas. Ele fornece um resumo rápido e informativo sobre a estrutura de um DataFrame, permitindo identificar rapidamente problemas com tipos de dados, valores missing e uso de memória.

Lembre-se de que info() é apenas o ponto de partida para a análise de dados. Para uma compreensão completa, complemente essas informações com visualizações, estatísticas descritivas e análises mais profundas específicas do seu domínio de aplicação.

Referências

Análise Estatística Descritiva com df.describe() no Pandas

O método df.describe() é uma das funções mais úteis e frequentemente utilizadas na biblioteca Pandas para Python. Ele fornece um resumo estatístico rápido das colunas numéricas e de objeto em um DataFrame, permitindo uma compreensão rápida da distribuição e características dos dados.

O que é df.describe()?

O método describe() gera estatísticas descritivas que resumem a tendência central, dispersão e forma da distribuição de um conjunto de dados, excluindo valores NaN.

Por padrão, o método fornece:

  • Para dados numéricos: count, mean, std, min, quartis (25%, 50%, 75%) e max
  • Para dados categóricos/object: count, unique, top (valor mais frequente) e freq (frequência do top)

Exemplo básico de uso:

Em R, a função equivalente seria summary() aplicada a um data frame:

Estatísticas Fornecidas pelo describe()

Para Variáveis Numéricas

Para colunas numéricas, describe() retorna oito medidas estatísticas principais:

Medidas de Posição:

  • count: Quantidade de valores não nulos
  • mean: Média aritmética dos valores
  • min: Valor mínimo
  • max: Valor máximo

Medidas de Dispersão:

  • std: Desvio padrão (medida de dispersão)
  • 25%: Primeiro quartil (Q1)
  • 50%: Mediana (segundo quartil, Q2)
  • 75%: Terceiro quartil (Q3)

Interpretação Matemática:

As medidas de posição e dispersão podem ser representadas matematicamente:

\(\text{Média} (\mu) = \frac{1}{n}\sum_{i=1}^{n}x_i\) \(\text{Desvio Padrão} (\sigma) = \sqrt{\frac{1}{n}\sum_{i=1}^{n}(x_i – \mu)^2}\) \(\text{Mediana} = \begin{cases} x_{\frac{n+1}{2}} & \text{se n é ímpar} \\ \frac{x_{\frac{n}{2}} + x_{\frac{n}{2}+1}}{2} & \text{se n é par} \end{cases}\)

Para Variáveis Categóricas

Para colunas do tipo object (strings) ou categóricas, describe() retorna quatro medidas diferentes:

Medidas de Frequência:

  • count: Quantidade de valores não nulos
  • unique: Número de valores únicos

Medidas de Moda:

  • top: Valor mais frequente (moda)
  • freq: Frequência do valor mais comum

Exemplo com dados categóricos:

Em R, para obter estatísticas de variáveis categóricas, usamos table() ou funções específicas:

Relação entre as Medidas Estatísticas

As estatísticas fornecidas pelo describe() estão inter-relacionadas e fornecem uma visão abrangente da distribuição dos dados:

\(\text{Intervalo Interquartil (IQR)} = Q_3 – Q_1\)

O IQR é uma medida de dispersão robusta a outliers, diferentemente do desvio padrão.

Podemos detectar outliers usando a regra:

Outlier inferior < \(Q_1\) - 1.5 IQR e

Outlier superior > \(Q_3\) + 1.5 IQR

O coeficiente de variação (CV) é outra medida útil:

\(CV = \frac{\sigma}{\mu} \times 100\%\)

Que representa a dispersão relativa dos dados em relação à média.

Quando e Como Usar df.describe()

Análise Exploratória Inicial

Use describe() como uma das primeiras etapas na análise de dados para obter uma visão geral rápida das variáveis numéricas.

Identificação de Outliers

Use os quartis e valores min/max para identificar possíveis outliers nos dados.

Comparação entre Grupos

Use describe() em conjunto com groupby() para comparar estatísticas entre diferentes categorias.

Em R, usamos funções do pacote dplyr para operações similares:

Personalizando o df.describe()

O método describe() aceita vários parâmetros para personalizar sua saída:

Parâmetros Principais:

  • percentiles: Lista de percentis para incluir (padrão: [.25, .5, .75])
  • include: Tipos de dados a incluir (padrão: apenas numéricos)
  • exclude: Tipos de dados a excluir
  • datetime_is_numeric: Tratar datetime como numérico (padrão: True)

Exemplos de personalização:

⚠️ Limitações e Considerações

Embora describe() seja extremamente útil, é importante entender suas limitações:

  • Não mostra a assimetria (skewness) ou curtose da distribuição
  • Não fornece informações sobre missing values além do count
  • Para uma análise completa, é necessário complementar com outras técnicas
  • Pode ser enganoso para distribuições multimodais ou assimétricas

Conclusão

O método df.describe() é uma ferramenta poderosa para análise exploratória de dados em Python com Pandas. Ele fornece um resumo estatístico rápido que ajuda a entender a distribuição, tendência central e dispersão dos dados.

Lembre-se de que describe() é apenas o ponto de partida para a análise de dados. Para uma compreensão completa, complemente essas estatísticas com visualizações, testes de hipóteses e análises mais profundas específicas do seu domínio de aplicação.

Referências