0Pricing
Learn AI with Python · Aula

Integração entre Pandas e SQL

pd.read_sql(), df.to_sql(), mecanismo SQLAlchemy e consulta direta dos resultados do banco de dados em DataFrames.

Integração entre Pandas e SQL é uma aula grátis de Learn AI with Python no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Learn AI with Python, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Learn AI with Python inclui 4 aulas no total.

Pandas encontra o SQL

Você não precisa escolher entre SQL e pandas — eles funcionam juntos. Consulte um banco de dados para obter um DataFrame, transforme os dados com pandas e grave os resultados novamente.

A ligação entre eles é o SQLAlchemy, junto com as funções do pandas read_sql e to_sql.

Por que usar SQLAlchemy?

O pandas se comunica com bancos de dados por meio de uma conexão ou de um motor do SQLAlchemy. O motor abstrai o tipo de banco de dados, portanto o mesmo código funciona com SQLite, PostgreSQL, MySQL e outros — basta alterar a URL.

Criando um motor

create_engine recebe uma URL de conexão. O esquema da URL identifica o controlador do banco de dados.

from sqlalchemy import create_engine

engine = create_engine("sqlite:///ml.db")
# Postgres: create_engine("postgresql://user:pass@host:5432/db")

Lendo uma tabela com pd.read_sql

pd.read_sql executa uma consulta ou lê uma tabela e retorna um DataFrame. Passe uma cadeia de caracteres SQL e o motor.

import pandas as pd

df = pd.read_sql("SELECT * FROM experiments", engine)
print(df.head())

Lendo com uma consulta filtrada

Deixe o banco de dados fazer a filtragem e a agregação e, depois, entregue um resultado menor ao pandas. Isso é muito mais eficiente do que carregar tudo.

df = pd.read_sql(
    "SELECT name, accuracy FROM experiments WHERE accuracy > 0.85 ORDER BY accuracy DESC",
    engine,
)
print(df)

Consultas parametrizadas

Passe os parâmetros da consulta com segurança usando o argumento params, em vez de formatar cadeias de caracteres.

from sqlalchemy import text

df = pd.read_sql(
    text("SELECT * FROM experiments WHERE name = :n"),
    engine,
    params={"n": "xgb"},
)

Gravando um DataFrame com df.to_sql

df.to_sql(table, engine) grava um DataFrame em uma tabela do banco de dados, criando-a a partir dos tipos de dados do DataFrame, se necessário.

df.to_sql("results", engine, index=False)

O parâmetro index

Por padrão, to_sql grava o índice do DataFrame como uma coluna. Normalmente, você não quer isso — passe index=False para ignorá-lo.

df.to_sql("results", engine, index=False)   # no extra index column

O parâmetro if_exists

if_exists controla o comportamento quando a tabela já existe:

  • "fail" — gerar um erro (padrão)
  • "replace" — remover e recriar a tabela
  • "append" — adicionar linhas à tabela existente
df.to_sql("results", engine, if_exists="append", index=False)
# Use "replace" to overwrite, "fail" to be safe

Um fluxo de ida e volta

Um pipeline típico: ler dados brutos do SQL, transformá-los no pandas e gravar o resultado limpo de volta em uma tabela nova.

import pandas as pd
from sqlalchemy import create_engine

engine = create_engine("sqlite:///ml.db")
raw = pd.read_sql("SELECT * FROM experiments", engine)
raw["accuracy_pct"] = (raw["accuracy"] * 100).round(1)
raw.to_sql("experiments_clean", engine, if_exists="replace", index=False)

Leituras em blocos para tabelas grandes

Para tabelas grandes demais para caber na memória, passe chunksize a read_sql para percorrer o resultado em lotes.

for chunk in pd.read_sql("SELECT * FROM big_table", engine, chunksize=10000):
    process(chunk)   # handle 10k rows at a time

Verificação rápida: adicionando linhas

Você quer que to_sql adicione novas linhas a uma tabela existente sem removê-la.

Recapitulação: pandas e SQL

Agora, você consegue mover dados entre o pandas e bancos de dados:

  • create_engine(url) para uma conexão independente do banco de dados
  • pd.read_sql(query, engine) para carregar os resultados de uma consulta em um DataFrame
  • df.to_sql(table, engine, index=False, if_exists=...) para gravar os dados de volta
  • Consultas parametrizadas e chunksize para obter segurança e escala

A seguir: armazenando e consultando resultados de experimentos de ML.

Perguntas Frequentes

A aula “Integração entre Pandas e SQL” é grátis?

Sim — o texto completo de “Integração entre Pandas e SQL” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Learn AI with Python, atualize para CoddyKit PRO. O curso de Learn AI with Python inclui 4 aulas no total.

O que vou aprender em “Integração entre Pandas e SQL”?

pd.read_sql(), df.to_sql(), mecanismo SQLAlchemy e consulta direta dos resultados do banco de dados em DataFrames. Você pratica Learn AI with Python com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Learn AI with Python?

Nenhuma experiência prévia é necessária. Learn AI with Python no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.

Quanto tempo leva a aula “Integração entre Pandas e SQL”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Learn AI with Python?

Sim. Cada aula de Learn AI with Python inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. SQLite com o módulo sqlite3 do Python
  2. Integração entre Pandas e SQL
  3. Armazenamento e consulta de resultados de aprendizado de máquina
  4. Introdução aos bancos de dados vetoriais
← Voltar para Learn AI with Python