(Série: Python para Análise de Dados — Parte 3)

Fala, pessoal! Sejam muito bem-vindos de volta à nossa série de estudos sobre análise de dados com Python. Nosso dataset já passou pela "faxina" (vimos valores nulos, duplicatas e ajustes de tipos no post passado), o que significa que agora ele está tinindo e pronto para o trabalho de investigação.

É aqui que entra a famosa EDA (Exploratory Data Analysis) ou Análise Exploratória de Dados. Em vez de apenas olhar para números soltos, vamos usar o Pandas para fazer perguntas aos dados e descobrir padrões, tendências e comportamentos ocultos.

Estatística Descritiva: Um Raio-X dos Seus Dados

Antes de criar gráficos complexos, precisamos entender a distribuição numérica do nosso dataset. O Pandas faz isso de forma brilhante com o método describe(), que resume contagem, média, desvio padrão, mínimo, máximo e os quartis:

import pandas as pd

# Exemplo de DataFrame de vendas limpo
dados = {
    'Produto': ['Notebook', 'Mouse', 'Teclado', 'Monitor', 'Headset', 'Mousepad'],
    'Preço': [3500.0, 150.0, 250.0, 1200.0, 300.0, 50.0],
    'Quantidade_Vendida': [12, 150, 80, 45, 90, 200]
}

df = pd.DataFrame(dados)

# Gerando o resumo estatístico das colunas numéricas
print(df.describe())

Com uma única linha de código, você descobre, por exemplo, qual é o produto mais caro, a média de vendas ou onde estão concentrados os maiores volumes.

Contando Frequências com value_counts()

Quando estamos analisando variáveis categóricas (como categorias de produtos, cidades ou status de pedidos), queremos saber com que frequência cada valor aparece. O value_counts() é perfeito para isso:

# Descobrindo quantas vezes cada categoria ou valor aparece
# Exemplo imaginando uma coluna de 'Categoria'
# print(df['Categoria'].value_counts())
    
# Se quisermos ver em porcentagem, basta usar o parâmetro normalize=True:
# print(df['Categoria'].value_counts(normalize=True) * 100)

Agrupamentos Estratégicos com groupby

Lembra do groupby que pincelamos lá no primeiro artigo? Na EDA ele brilha de verdade. Queremos responder perguntas de negócio, como: "Qual produto gerou mais faturamento total?" (Preço $\times$ Quantidade).

# Criando uma nova coluna de Faturamento Total por linha
df['Faturamento_Total'] = df['Preço'] * df['Quantidade_Vendida']

# Agrupando por produto e somando o faturamento
faturamento_por_produto = df.groupby('Produto')['Faturamento_Total'].sum()

print(faturamento_por_produto)

Correlação: Descobrindo Relações Ocultas

Será que quanto mais caro o produto, menos ele vende? Ou o preço não afeta a saída? Para responder isso, usamos a matriz de correlação. Ela mede a força da relação entre variáveis numéricas (variando de -1 a 1):

# Calculando a correlação entre as colunas numéricas
print(df[['Preço', 'Quantidade_Vendida', 'Faturamento_Total']].corr())

Primeiros Passos na Visualização Direta no Pandas

Embora bibliotecas como Matplotlib e Seaborn sejam especialistas em gráficos, o próprio Pandas já integra funções visuais rápidas baseadas no Matplotlib para facilitar a nossa vida durante a exploração:

import matplotlib.pyplot as plt

# Gerando um gráfico de barras simples direto do DataFrame
df.plot(kind='bar', x='Produto', y='Faturamento_Total', title='Faturamento por Produto')

plt.show()

Próximos Passos

Com a Análise Exploratória, você deixa de apenas "olhar" para a tabela e passa a extrair respostas concretas e insights de negócio. Na próxima etapa da nossa série, vamos expandir ainda mais essas visualizações usando ferramentas dedicadas para criar gráficos profissionais!

Até a próxima, e bons códigos!