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() # mensalPandas 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