
Python Pandas en SQL vormen de basis voor data-analyse, machine learning en ETL-pipelines. Het verwerken van grote DataFrames en het uitvoeren van complexe databasequery's vereist efficiëntie zonder dat dit ten koste gaat van de duidelijkheid van de code.
Het integreren van SQL-query's in Pandas- workflows versnelt het filteren, aggregeren en samenvoegen van gegevens, terwijl de flexibiliteit en consistentie van de resultaten van Python behouden blijven.
Deze handleiding behandelt de installatie van pandasql en de native SQL-methoden van Pandas, presenteert praktijkvoorbeelden van DataFrame-query's en schetst best practices voor het optimaliseren van analyseworkflows en rapportages.
Waarom Python Pandas en SQL combineren?
Pandas is een Python-bibliotheek die speciaal is ontwikkeld voor het manipuleren en analyseren van data. Het is de aangewezen tool voor het filteren, sorteren en transformeren van tabeldata. SQL (Structured Query Language) daarentegen is de gouden standaard voor het opvragen van gegevens uit relationele databases – denk aan MySQL, PostgreSQL, SQLite en meer.

Het combineren van deze twee is een 'game-changer':
De brug: pandasql en native Pandas SQL-integratie
Pandasql maakt het mogelijk om SQL-query's rechtstreeks op Pandas DataFrames uit te voeren, waardoor het niet nodig is om gegevens te exporteren , een aparte database in te richten of extra API's te gebruiken; gebruikers schrijven eenvoudigweg SQL-instructies, ontvangen een resulterend DataFrame en kunnen ongestoord verder werken.
Pandasql installeren
python
pip install pandasql
Nu bent u klaar om SQL en Pandas als een professional te combineren.
Aan de slag: basisgebruik
Laten we een eenvoudig voorbeeld bekijken. Stel dat je een DataFrame hebt:
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)
Dit retourneert het volledige DataFrame, net zoals df.head() maar met behulp van SQL-syntaxis. Je kunt nu filteren, groeperen en samenvoegen, net zoals je dat in een database zou doen.
Real-world data-analyse met Pandas en SQL
Laten we eens kijken naar een praktische dataset. Stel je voor dat je een dataset over autoverkoop analyseert met kolommen zoals brand, model, year, price, mileage En nog veel meer.
Gegevens laden en verkennen
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())
Je ziet de kolomnamen, gegevenstypen en eventuele ontbrekende waarden – essentieel voor een kwalitatieve data-analyse.
SQL-query's uitvoeren op dataframes
Top 10 duurste auto's
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
""")
Gemiddelde prijs per merk
python
q("""
SELECT brand, ROUND(AVG(price), 2) AS avg_price
FROM car_data
GROUP BY brand
ORDER BY avg_price DESC
""")
Auto's geproduceerd na 2015
python
q("""
SELECT *
FROM car_data
WHERE year > 2015
ORDER BY year DESC
""")
Totaal aantal auto's per merk
python
q("""
SELECT brand, COUNT(*) as total_listed
FROM car_data
GROUP BY brand
ORDER BY total_listed DESC
LIMIT 5
""")
Groepering op voorwaarde
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
""")
Gemiddelde kilometerstand en prijs per merk
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
""")
Prijs per mijl
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
""")
Visualiseren van gegevens per staat
U kunt zelfs widgets en Plotly gebruiken voor interactieve dashboards:
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)
Dit maakt uw analyse interactief en visueel aantrekkelijk – perfect voor dashboards of presentaties.
Verder dan pandasql: Native Pandas SQL-bewerkingen
Hoewel pandasql uitstekend geschikt is voor snelle SQL-query's, ondersteunt Pandas ook directe SQL-integratie voor het werken met echte databases (zoals SQLite, PostgreSQL, MySQL):
Voorbeeld: Lezen en schrijven naar 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)
Deze aanpak is perfect voor ETL-pijplijnen, rapportage en productiedataworkflows.
Geavanceerde use cases: ETL, machine learning en dashboards

Bij het combineren van SQL en Pandas gaat het niet alleen om het uitvoeren van query's. Het gaat om het bouwen van slimmere workflows:
Pandasql versus Pure Pandas: wanneer gebruik je wat?
| Kenmerk | pandasql (SQL) | Pure Panda's |
|---|---|---|
| Syntaxis | SQL (voor velen bekend) | Python (flexibel, krachtig) |
| leesbaarheid | Hoog voor complexe zoekopdrachten | Kan langdradig worden |
| Prestaties | Langzamer bij zeer grote datasets | Sneller, geoptimaliseerd voor Python |
| Aansluitingen/Groeperingen | Heel intuïtief | Meer code, maar meer opties |
| Integratie | Ideaal voor snelle analyses | Het beste voor productieworkflows |
Beperkingen en beste praktijken
Conclusie
Het geïntegreerde gebruik van Python Pandas en SQL vertegenwoordigt een essentiële competentie voor data-analisten, AI ingenieurs en onderzoeksprofessionals. Deze methodologie stemt relationele databasequery's af op De krachtige DataFrame van Pandas operaties, wat zowel de efficiëntie als de duidelijkheid van de code verbetert. Door tools zoals pandasql te gebruiken in combinatie met de native SQL-integratie van Pandas, kunnen teams exploratieve data-analyse (EDA), robuuste ETL-workflows en machine learning-pipelines uitvoeren binnen een samenhangende omgeving.
Statistieken om te onthouden:
Door deze dubbele aanpak te hanteren, worden schaalbare, onderhoudbare analyseprocessen gegarandeerd en worden teams voorbereid op succes op de lange termijn.
Wil je je houden AI en datavaardigheden op peil?
Ontdek meer tutorials over LLM's, prompt engineering, RAG en AI agent workflows. Blijf op de hoogte voor meer handleidingen en praktische voorbeelden van de AI MOJO


