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:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
import pandas as pd import numpy as np # Criando um DataFrame de exemplo df = pd.DataFrame({ 'nome': ['Ana', 'João', 'Maria', 'Pedro', None], 'idade': [25, 30, None, 35, 40], 'salario': [5000.0, 6000.0, 7000.0, None, 9000.0], 'departamento': ['Vendas', 'TI', 'Vendas', 'TI', 'RH'] }) # Exibindo informações do DataFrame df.info() |
Saída esperada do código acima:
|
1 2 3 4 5 6 7 8 9 10 11 |
<class 'pandas.core.frame.DataFrame'> RangeIndex: 5 entries, 0 to 4 Data columns (total 4 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 nome 4 non-null object 1 idade 4 non-null float64 2 salario 4 non-null float64 3 departamento 5 non-null object dtypes: float64(2), object(2) memory usage: 288.0+ bytes |
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:
- Valores faltantes (comparando Non-Null Count com o total de linhas)
- Tipos de dados inadequados (ex: números armazenados como strings)
- 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:
|
1 2 3 4 5 6 7 8 9 10 11 |
# Mostrar informações de forma resumida df.info(verbose=False) # Mostrar uso detalhado de memória df.info(memory_usage='deep') # Salvar a saída em uma string import io buffer = io.StringIO() df.info(buf=buffer) info_str = buffer.getvalue() |
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:
df.info()para entender a estruturadf.describe()para estatísticas descritivasdf.head()para visualizar as primeiras linhasdf.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:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
# Criando um data frame de exemplo em R df <- data.frame( nome = c('Ana', 'João', 'Maria', 'Pedro', NA), idade = c(25, 30, NA, 35, 40), salario = c(5000.0, 6000.0, 7000.0, NA, 9000.0), departamento = c('Vendas', 'TI', 'Vendas', 'TI', 'RH') ) # Informações sobre a estrutura do data frame str(df) # Resumo do data frame summary(df) # Visualizar as primeiras linhas head(df) |
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.
|
1 2 3 4 5 |
# Carregar dados de um arquivo df = pd.read_csv('dados.csv') # Primeira análise da estrutura df.info() |
Identificação de Valores Faltantes
Use info() para identificar rapidamente colunas com valores missing.
|
1 2 3 4 5 |
# Verificar valores missing df.info() # Se a contagem de non-null for menor que o total de linhas, # existem valores missing na coluna |
Otimização de Memória
Use info() com memory_usage=’deep’ para analisar o uso de memória e otimizá-lo.
|
1 2 3 4 5 |
# Analisar uso detalhado de memória df.info(memory_usage='deep') # Otimizar tipos de dados para reduzir memória df['coluna'] = df['coluna'].astype('category') # Exemplo de otimização |
Exemplo Prático Completo
Vamos explorar um exemplo prático de uso do df.info() em um conjunto de dados mais complexo:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
import pandas as pd import numpy as np # Criando um DataFrame mais complexo np.random.seed(42) # Para reproducibilidade dados = { 'id': range(1, 101), 'idade': np.random.randint(18, 70, 100), 'salario': np.random.normal(5000, 1500, 100), 'cidade': np.random.choice(['São Paulo', 'Rio de Janeiro', 'Belo Horizonte', None], 100), 'ativo': np.random.choice([True, False], 100), 'data_cadastro': pd.date_range('2020-01-01', periods=100, freq='D') } df = pd.DataFrame(dados) # Adicionando alguns valores missing df.loc[::10, 'idade'] = None df.loc[::15, 'salario'] = np.nan # Analisando com info() print("Análise completa com df.info():") df.info() print("\n\nAnálise resumida:") df.info(verbose=False) print("\n\nAnálise com uso detalhado de memória:") df.info(memory_usage='deep') |
Em R, podemos realizar uma análise similar com:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# Criando um data frame complexo em R set.seed(42) # Para reproducibilidade dados <- data.frame( id = 1:100, idade = sample(c(18:70, NA), 100, replace = TRUE), salario = rnorm(100, 5000, 1500), cidade = sample(c('São Paulo', 'Rio de Janeiro', 'Belo Horizonte', NA), 100, replace = TRUE), ativo = sample(c(TRUE, FALSE), 100, replace = TRUE), data_cadastro = seq.Date(as.Date('2020-01-01'), by = 'day', length.out = 100) ) # Analisando a estrutura str(dados) # Resumo das variáveis summary(dados) # Verificar valores missing colSums(is.na(dados)) |
⚠️ 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
- Documentação oficial do Pandas: DataFrame.info()
- Pandas User Guide: Essential Basic Functionality
- Real Python: The Pandas DataFrame