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 columnO 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 safeUm 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 timeVerificaçã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 dadospd.read_sql(query, engine)para carregar os resultados de uma consulta em um DataFramedf.to_sql(table, engine, index=False, if_exists=...)para gravar os dados de volta- Consultas parametrizadas e
chunksizepara 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
- SQLite com o módulo sqlite3 do Python
- Integração entre Pandas e SQL
- Armazenamento e consulta de resultados de aprendizado de máquina
- Introdução aos bancos de dados vetoriais