Seja muito bem-vindo à Academy Code Christ!
🌍 Academy Code Christ está disponível em vários idiomas.Fique à vontade para usar o tradutor na Barra lateral (Sidebar) e aprender no seu idioma.
Python 🐍 Etapa 12
Análise de Dados
🎯 O que é análise de dados?
Em Python, isso é possível de forma prática e poderosa através de bibliotecas criadas especificamente para manipulação tabular, cálculos estatísticos e visualização gráfica.
Vamos conhecer as
principais ferramentas:
|
Biblioteca |
Função principal |
|
Pandas |
Manipulação e análise de dados (tabelas, planilhas, séries). |
|
NumPy |
Cálculos numéricos rápidos e matrizes multidimensionais. |
|
Matplotlib |
Gráficos e visualização de dados. |
|
Seaborn (opcional) |
Gráficos estatísticos de alto nível com base no Matplotlib. |
Instalando as bibliotecas
Antes de começar, instale os pacotes necessários (caso ainda não os tenha):
pip install pandas matplotlib numpy seaborn
Após instalados, você poderá importá-los normalmente:
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns
Introdução ao Pandas
O Pandas é a ferramenta mais usada para lidar com dados tabulares (como planilhas do Excel ou arquivos CSV).
Ele trabalha com duas estruturas
principais:
● Series → vetor unidimensional (semelhante a uma lista)
● DataFrame → tabela de duas dimensões (linhas e colunas)
Exemplo de DataFrame:
import pandas as pd
dados = {
"Nome": ["Ana", "Carlos", "Marina", "João"],
"Idade": [23, 35, 29, 41],
"Cidade": ["São Paulo", "Curitiba", "Rio", "Brasília"]
}
df = pd.DataFrame(dados)
print(df)
Saída:
Nome Idade Cidade
0 Ana 23 São Paulo
1 Carlos 35 Curitiba
2 Marina 29 Rio
3 João 41 Brasília
Explorando dados básicos
Pandas possui vários métodos úteis:
df.head() # mostra 5 primeiras linhas
df.tail() # mostra 5 últimas linhas
df.info() # informações gerais (tipos, memória, etc.)
df.describe() # estatísticas resumidas das colunas numéricas
Lendo e gravando arquivos externos
Você pode importar e exportar arquivos de diversos formatos.
Ler um arquivo CSV:
df = pd.read_csv("clientes.csv")
Gravar um novo CSV:
df.to_csv("novo_arquivo.csv", index=False)
Também é possível:
● Ler Excel → pd.read_excel("arquivo.xlsx")
● Ler JSON → pd.read_json("dados.json")
Selecionando dados
Pandas torna fácil localizar e filtrar informações.
# Selecionar coluna
print(df["Nome"])
# Selecionar múltiplas colunas
print(df[["Nome", "Cidade"]])
# Selecionar linha por índice
print(df.loc[1])
# Filtro por condição
print(df[df["Idade"] > 30])
Adicionando e removendo dados
df["Profissão"] = ["Engenheira", "Professor", "Designer", "Médico"]
df.drop("Cidade", axis=1, inplace=True) # remove coluna
Estatísticas rápidas
Pandas facilita cálculos:
print("Idade média:", df["Idade"].mean())
print("Idade máxima:", df["Idade"].max())
print("Idade mínima:", df["Idade"].min())
print("Soma total de idades:", df["Idade"].sum())
Agrupando informações (groupby)
Quando os dados têm categorias, podemos agrupá-los e sumarizar:
dados = {
"Setor": ["TI", "RH", "TI", "Vendas", "RH", "TI"],
"Salário": [5000, 3200, 5500, 3000, 3400, 5200]
}
df = pd.DataFrame(dados)
media = df.groupby("Setor")["Salário"].mean()
print(media)
Saída:
Setor
RH 3300.0
TI 5233.3
Vendas 3000.0
Name: Salário, dtype: float64
Lidando com valores ausentes (NaN)
Dados reais raramente são perfeitos. Às vezes há valores em falta.
import numpy as np
df.loc[2, "Salário"] = np.nan
print(df.isna()) # mostra onde há valores vazios
print(df.fillna(0)) # substitui NaN por 0
df.dropna(inplace=True) # remove linhas vazias
Ordenando dados
df.sort_values("Salário", ascending=False, inplace=True)
Visualização com Matplotlib
Agora que temos dados estruturados, é hora de enxergar padrões visuais.
import matplotlib.pyplot as plt
idades = [23, 45, 33, 25, 29, 40, 38]
plt.hist(idades, bins=5, color="skyblue", edgecolor="black")
plt.title("Distribuição de Idades")
plt.xlabel("Faixa de Idade")
plt.ylabel("Frequência")
plt.show()
Cria um gráfico de distribuição (histograma) simples e informativo.
Gráfico de barras
cidades = ["São Paulo", "Curitiba", "Belo Horizonte", "Recife"]
populacao = [12.3, 1.9, 2.5, 1.6]
plt.bar(cidades, populacao, color=["purple", "green", "orange", "blue"])
plt.ylabel("Milhões de habitantes")
plt.title("População por cidade")
plt.show()
Gráfico de linhas
Usado para representar tendências ao longo do tempo.
meses = ["Jan", "Fev", "Mar", "Abr", "Mai"]
vendas = [2300, 2700, 2100, 3000, 2800]
plt.plot(meses, vendas, marker="o", color="teal")
plt.title("Vendas mensais")
plt.xlabel("Mês")
plt.ylabel("Vendas (R$)")
plt.grid(True)
plt.show()
Gráfico de pizza
gastos = [500, 200, 150, 150]
categorias = ["Aluguel", "Alimentação", "Transporte", "Lazer"]
plt.pie(gastos, labels=categorias, autopct="%1.1f%%", startangle=90)
plt.title("Distribuição de Gastos")
plt.show()
Visualização usando Seaborn
Seaborn fornece gráficos mais vistosos e prontos.
import seaborn as sns
sns.set(style="whitegrid")
altura = [1.70, 1.65, 1.75, 1.80, 1.60]
peso = [65, 59, 73, 80, 55]
sns.scatterplot(x=altura, y=peso)
plt.title("Relação altura x peso")
plt.xlabel("Altura (m)")
plt.ylabel("Peso (kg)")
plt.show()
O Seaborn oferece ainda gráficos de correlação, densidade e distribuição.
Exemplo de gráfico de barras com Seaborn:
df = pd.DataFrame({
"Produto": ["A", "B", "C", "A", "B", "C"],
"Vendas": [30, 42, 35, 25, 45, 38]
})
sns.barplot(x="Produto", y="Vendas", data=df, palette="mako")
plt.title("Média de vendas por produto")
plt.show()
Análise prática: Vendas por categoria
import pandas as pd
import matplotlib.pyplot as plt
dados = {
"Categoria": ["Eletrônicos", "Vestuário", "Livros", "Eletrônicos", "Vestuário", "Livros"],
"Vendas": [3500, 1200, 900, 4200, 1800, 1000]
}
df = pd.DataFrame(dados)
media = df.groupby("Categoria")["Vendas"].mean()
media.plot(kind="bar", color=["blue", "green", "orange"])
plt.title("Média de vendas por categoria")
plt.ylabel("Vendas médias (R$)")
plt.show()
Apenas com essas poucas linhas, você produz gráficos visualmente claros e profissionais.
Gerando relatórios automáticos
Você pode salvar seus gráficos e resultados diretamente:
plt.savefig("relatorio_vendas.png", dpi=300)
df.to_csv("relatorio.csv", index=False)
Mini‑projeto prático: Análise de desempenho escolar
Vamos consolidar tudo: leitura de dados, tratamento, análise e gráficos.
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
# Dados simulados
dados = {
"Aluno": ["Ana", "Bruno", "Carlos", "Diana", "Eduardo", "Fernanda"],
"Matemática": [8.5, 6.0, 7.0, 5.5, 9.0, 8.0],
"Português": [7.5, 5.0, 6.5, 8.0, 7.0, 9.5],
"Inglês": [9.0, 6.5, 7.5, 5.0, 8.5, 9.0]
}
df = pd.DataFrame(dados)
df["Média"] = df[["Matemática", "Português", "Inglês"]].mean(axis=1)
# Exibe informações básicas
print(df)
print("\nMédia geral da turma:", round(df["Média"].mean(), 2))
# Gráfico de desempenho individual
sns.barplot(x="Aluno", y="Média", data=df, palette="viridis")
plt.axhline(df["Média"].mean(), color="red", ls="--", label="Média da turma")
plt.legend()
plt.title("Desempenho Escolar - Média por Aluno")
plt.show()
Com poucas linhas você criou um sistema de análise educacional completo, com insights visuais instantâneos.
Boas práticas em análise e visualização
1. Conheça seus dados: sempre verifique tipos, valores ausentes e outliers.
2. Limpe antes de analisar: padronize nomes e formatos.
3. Evite poluição visual: menos é mais em gráficos.
4. Use cores estrategicamente: contraste e clareza ajudam a compreensão.
5. Documente etapas da análise: isso garante reprodutibilidade.
Resumo
Nesta etapa, você aprendeu a:
✅
Utilizar Pandas
para manipular dados tabulares.
✅ Criar, filtrar, agrupar e calcular
estatísticas de colunas.
✅ Lidar com valores ausentes e ordenar
dados.
✅ Gerar gráficos informativos
com Matplotlib e Seaborn.
✅ Salvar gráficos, relatórios e análises
completas.
✅ Produzir um mini-projeto de análise
escolar automatizada.
Com esse conhecimento, você já domina as ferramentas básicas para o campo da Ciência de Dados e pode criar dashboards e relatórios inteligentes.
🎯 Na próxima etapa, abordaremos o acesso a bancos de dados e integração com SQL, onde você aprenderá a conectar Python a sistemas de armazenamento reais e consultar informações de forma eficiente.

%20-%20Copia.png)
.png)
.png)
.png)
Postar um comentário