$ python modulo_4.py
Planilhas e dados
Ler, limpar, transformar e gerar relatórios a partir de CSV e Excel. pandas é a ferramenta padrão; openpyxl para formatação avançada.
O que você vai aprender
- Ler e escrever CSV e Excel com pandas
- Limpeza de dados: nulos, duplicatas, tipos
- Filtros, agrupamentos e pivot tables
- Gerar relatórios formatados com openpyxl
- Pipelines reutilizáveis de dados
1. Instalação
pip install pandas openpyxl
2. Leitura e escrita básica
import pandas as pd
df = pd.read_csv("vendas.csv", encoding="utf-8")
print(df.head())
print(df.info())
df.to_excel("vendas.xlsx", index=False, sheet_name="Dados")
3. Limpeza essencial
# remover linhas totalmente vazias
df = df.dropna(how="all")
# preencher nulos
df["quantidade"] = df["quantidade"].fillna(0)
# tipos
df["data"] = pd.to_datetime(df["data"], errors="coerce")
df["valor"] = pd.to_numeric(df["valor"], errors="coerce")
# duplicatas
df = df.drop_duplicates(subset=["pedido_id"])
4. Análise rápida
# agrupamento
resumo = df.groupby("categoria").agg(
total=("valor", "sum"),
qtd=("pedido_id", "count"),
media=("valor", "mean")
).sort_values("total", ascending=False)
print(resumo)
# filtro
hoje = df[df["data"] >= "2026-01-01"]
5. Relatório formatado com openpyxl
relatorio.py
from openpyxl import Workbook
from openpyxl.styles import Font, PatternFill, Alignment, Border, Side
from openpyxl.utils.dataframe import dataframe_to_rows
wb = Workbook()
ws = wb.active
ws.title = "Resumo"
# cabeçalho
ws["A1"] = "Relatório de Vendas — IRN Devs"
ws["A1"].font = Font(bold=True, size=14, color="E8A33D")
ws.merge_cells("A1:D1")
# dados
for r in dataframe_to_rows(resumo.reset_index(), index=False, header=True):
ws.append(r)
# estilo cabeçalho
header_fill = PatternFill("solid", fgColor="1A1F18")
header_font = Font(bold=True, color="E8E6E0")
for cell in ws[3]:
cell.fill = header_fill
cell.font = header_font
wb.save("relatorio_vendas.xlsx")
EXERCÍCIO
1. Baixe um CSV público (ex.: dados abertos) e limpe-o.
2. Gere um resumo por mês e por categoria.
3. Exporte um Excel com duas abas: dados brutos e resumo formatado.
4. Adicione validação de schema (colunas obrigatórias).
2. Gere um resumo por mês e por categoria.
3. Exporte um Excel com duas abas: dados brutos e resumo formatado.
4. Adicione validação de schema (colunas obrigatórias).