Pandas é a biblioteca padrão de Python para manipulação de dados tabulares. Usa o conceito de DataFrame, uma tabela com linhas indexadas e colunas tipadas.

É ideal para datasets que cabem em memória (até ~1–2 GB). Para volumes maiores, considerar Polars ou PySpark.

Leitura e escrita

import pandas as pd
 
# Leitura
df = pd.read_csv("dados.csv")
df = pd.read_parquet("dados.parquet")
df = pd.read_json("dados.json")
df = pd.read_sql("SELECT * FROM tabela", con=engine)   # via SQLAlchemy
 
# Escrita
df.to_csv("saida.csv", index=False)
df.to_parquet("saida.parquet", index=False)
df.to_sql("tabela", con=engine, if_exists="replace", index=False)

Operações essenciais

# Inspeção
df.shape          # (linhas, colunas)
df.dtypes         # tipos das colunas
df.info()         # resumo + nulos
df.describe()     # estatísticas descritivas
 
# Seleção
df["coluna"]                           # série
df[["col1", "col2"]]                   # sub-dataframe
df.loc[df["status"] == "ativo"]        # filtro por condição
df.iloc[0:10]                          # filtro por índice numérico
 
# Transformações
df["nova"] = df["valor"] * 1.1
df = df.rename(columns={"old": "new"})
df = df.drop(columns=["col_desnecessaria"])
df = df.dropna(subset=["campo_obrigatorio"])
df = df.fillna({"campo": 0})
df["col"] = df["col"].astype("int64")
 
# Agrupamentos
df.groupby("categoria")["valor"].sum()
df.groupby("cliente_id").agg(
    total=("valor", "sum"),
    qtd=("pedido_id", "count"),
    ultima_compra=("data", "max"),
)
 
# Joins
pd.merge(df_left, df_right, on="chave", how="left")

Datas e séries temporais

df["data"] = pd.to_datetime(df["data"])
df["ano"] = df["data"].dt.year
df["mes"] = df["data"].dt.month
df["dia_semana"] = df["data"].dt.dayofweek    # 0 = segunda
 
# Resample (agrupamento temporal)
df.set_index("data").resample("ME")["valor"].sum()   # mensal

Pandas no pipeline de dados

Pandas é muito usado para:

  • Scripts de ingestão e limpeza de dados
  • Leitura de CSVs/Parquets antes de carregar em DW
  • Transformações leves dentro de tasks Airflow
  • Prototipagem de lógica que depois vai para PySpark

Limite: operações em Pandas são single-thread e carregam tudo em RAM. Para escalar, migrar para Polars (API semelhante, muito mais rápido) ou PySpark.

Ver também: python-engenharia-dados | python-polars | python-pyspark | python-conectores-db