
Python Pandas e SQL formam a base para análise de dados, aprendizado de máquina e pipelines de ETL. Lidar com grandes DataFrames e executar consultas complexas em bancos de dados exige eficiência sem comprometer a clareza do código.
Incorporar consultas SQL em fluxos de trabalho do Pandas acelera a filtragem, a agregação e as junções, mantendo a flexibilidade e a consistência dos resultados do Python.
Este guia aborda a configuração do pandasql e os métodos SQL nativos do Pandas, apresenta exemplos práticos de consultas a DataFrames e descreve as melhores práticas para otimizar fluxos de trabalho de análise e geração de relatórios.
Por que combinar Python Pandas e SQL?
O Pandas é uma biblioteca Python criada para manipulação e análise de dados. É a ferramenta ideal para fatiar, analisar e transformar dados tabulares. Já o SQL (Structured Query Language) é o padrão ouro para consultar bancos de dados relacionais — como MySQL, PostgreSQL, SQLite e outros.

Veja por que misturar esses dois pode mudar o jogo:
A Ponte: integração do pandasql e do Pandas SQL nativo
O pandasql permite a execução de consultas SQL diretamente em DataFrames do Pandas, eliminando a necessidade de exportar dados , provisionar um banco de dados separado ou adotar APIs adicionais; os usuários simplesmente escrevem instruções SQL, recebem um DataFrame resultante e prosseguem sem interrupções.
Instalando o pandasql
python
pip install pandasql
Agora você está pronto para misturar SQL e Pandas como um profissional.
Introdução: Uso básico
Vamos analisar um exemplo simples. Suponha que você tenha um DataFrame:
python
import pandas as pd
import pandasql as psql
data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35]}
df = pd.DataFrame(data)
query = "SELECT * FROM df"
result = psql.sqldf(query, locals())
print(result)
Isso retorna o DataFrame completo, assim como df.head() mas usando a sintaxe SQL. Agora você pode filtrar, agrupar e unir dados como faria em um banco de dados.
Análise de dados do mundo real com Pandas e SQL
Vamos avançar com um conjunto de dados prático. Imagine que você está analisando um conjunto de dados de vendas de carros com colunas como brand, model, year, price, mileageE muito mais.
Carregando e explorando dados
python
import pandas as pd
import pandasql as ps
car_data = pd.read_csv("cars_datasets.csv")
print(car_data.head())
print(car_data.info())
print(car_data.isnull().sum())
Você verá os nomes das colunas, os tipos de dados e quaisquer valores ausentes – informações essenciais para uma análise de dados de qualidade.
Executando consultas SQL em DataFrames
Os 10 carros mais caros
python
def q(query):
return ps.sqldf(query, {'car_data': car_data})
q("""
SELECT brand, model, year, price
FROM car_data
ORDER BY price DESC
LIMIT 10
""")
Preço médio por marca
python
q("""
SELECT brand, ROUND(AVG(price), 2) AS avg_price
FROM car_data
GROUP BY brand
ORDER BY avg_price DESC
""")
Carros fabricados após 2015
python
q("""
SELECT *
FROM car_data
WHERE year > 2015
ORDER BY year DESC
""")
Total de carros por marca
python
q("""
SELECT brand, COUNT(*) as total_listed
FROM car_data
GROUP BY brand
ORDER BY total_listed DESC
LIMIT 5
""")
Agrupamento por condição
python
q("""
SELECT condition, ROUND(AVG(price), 2) AS avg_price, COUNT(*) as listings
FROM car_data
GROUP BY condition
ORDER BY avg_price DESC
""")
Quilometragem média e preço por marca
python
q("""
SELECT brand,
ROUND(AVG(mileage), 2) AS avg_mileage,
ROUND(AVG(price), 2) AS avg_price,
COUNT(*) AS total_listings
FROM car_data
GROUP BY brand
ORDER BY avg_price DESC
LIMIT 10
""")
Preço por Milha
python
q("""
SELECT brand,
ROUND(AVG(price/mileage), 4) AS price_per_mile,
COUNT(*) AS total
FROM car_data
WHERE mileage > 0
GROUP BY brand
ORDER BY price_per_mile DESC
LIMIT 10
""")
Visualização de dados por estado
Você pode até usar widgets e Plotly para painéis interativos:
python
import plotly.express as px
import ipywidgets as widgets
state_dropdown = widgets.Dropdown(
options=car_data['state'].unique().tolist(),
value=car_data['state'].unique()[0],
description='Select State:',
layout=widgets.Layout(width='50%')
)
def plot_avg_price_state(state_selected):
query = f"""
SELECT brand, AVG(price) AS avg_price
FROM car_data
WHERE state = '{state_selected}'
GROUP BY brand
ORDER BY avg_price DESC
"""
result = q(query)
fig = px.bar(result, x='brand', y='avg_price', color='brand',
title=f"Average Car Price in {state_selected}")
fig.show()
widgets.interact(plot_avg_price_state, state_selected=state_dropdown)
Isso torna sua análise interativa e visualmente atraente, perfeita para painéis de controle ou apresentações.
Além do PandaSQL: Operações SQL Nativas do Pandas
Embora o pandasql seja ótimo para consultas rápidas no estilo SQL, o Pandas também oferece suporte à integração direta de SQL para trabalhar com bancos de dados reais (como SQLite, PostgreSQL, MySQL):
Exemplo: Leitura e Escrita em SQL
python
import pandas as pd
import sqlite3
# Connect to SQLite database
conn = sqlite3.connect(":memory:")
# Create a table and insert data
conn.execute("CREATE TABLE Students (id INTEGER, Name TEXT, Marks REAL, Age INTEGER)")
conn.execute("INSERT INTO Students VALUES (1, 'Kiran', 80, 16), (2, 'Priya', 60, 14), (3, 'Naveen', 82, 15)")
# Read from SQL
df = pd.read_sql("SELECT * FROM Students", conn)
print(df)
# Write to SQL
df.to_sql("Students_Copy", conn, if_exists="replace", index=False)
Essa abordagem é perfeita para pipelines de ETL, relatórios e fluxos de trabalho de dados de produção.
Casos de uso avançados: ETL, aprendizado de máquina e painéis

Combinar SQL e Pandas não envolve apenas consultas, mas também a criação de fluxos de trabalho mais inteligentes:
Pandasql vs. Pure Pandas: quando usar o quê?
| Característica | pandasql (SQL) | Pandas puros |
|---|---|---|
| Sintaxe | SQL (familiar para muitos) | Python (flexível, poderoso) |
| legibilidade | Alto para consultas complexas | Pode ficar prolixo |
| Desempenho | Mais lento em conjuntos de dados muito grandes | Mais rápido, otimizado para Python |
| Junções/Agrupamentos | Muito intuitivo | Mais código, mas mais opções |
| Integração | Ótimo para análise rápida | Melhor para fluxos de trabalho de produção |
Limitações e melhores práticas
Considerações finais da análise do Fortune Dragon
O uso integrado de Python Pandas e SQL representa uma competência essencial para analistas de dados, AI engenheiros e profissionais de pesquisa. Esta metodologia alinha a consulta de banco de dados relacional com O poderoso DataFrame do Pandas operações, aprimorando a eficiência e a clareza do código. Ao utilizar ferramentas como o pandasql e a integração SQL nativa do Pandas, as equipes podem executar análises exploratórias de dados (EDA), fluxos de trabalho ETL robustos e pipelines de aprendizado de máquina em um ambiente coeso.
Estatísticas para lembrar:
A adoção dessa abordagem dupla garante processos analíticos escaláveis e sustentáveis e posiciona as equipes para o sucesso a longo prazo.
Quer manter o seu AI e habilidades com dados são excelentes?
Explore mais tutoriais sobre LLMs, engenharia de prompt, RAG e AI fluxos de trabalho do agente. Fique ligado para mais guias e exemplos práticos do AI MOJO


