$ 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

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).

Sumário do curso

Precisa de algo assim, sob medida pro seu negócio?

agendar diagnóstico gratuito →