
Python Pandas och SQL utgör grunden för dataanalys, maskininlärning och ETL-pipelines. Att hantera stora DataFrames och köra komplexa databasfrågor kräver effektivitet utan att offra kodens tydlighet.
Att bädda in SQL-frågor i Pandas arbetsflöden accelererar filtrering, aggregering och kopplingar samtidigt som Pythons flexibilitet och resultatkonsekvens bibehålls.
Den här guiden behandlar installation av pandasql och Pandas inbyggda SQL-metoder, presenterar exempel på verkliga DataFrame-frågor och beskriver bästa praxis för att optimera analysarbetsflöden och rapportering.
Varför kombinera Python Pandas och SQL?
Pandas är ett Python-bibliotek byggt för datamanipulation och analys. Det är det självklara valet för att slica, dicing och transformera tabelldata. SQL (Structured Query Language) är å andra sidan guldstandarden för att fråga relationsdatabaser – tänk MySQL, PostgreSQL, SQLite med flera.

Här är varför en blandning av dessa två är revolutionerande:
Bryggan: pandasql och nativ Pandas SQL-integration
pandasql möjliggör exekvering av SQL-frågor direkt på Pandas DataFrames, vilket eliminerar behovet av att exportera data , tillhandahålla en separat databas eller använda ytterligare API:er; användare skriver helt enkelt SQL-satser, tar emot en resulterande DataFrame och fortsätter utan avbrott.
Installera pandasql
pytonorm
pip install pandasql
Nu är du redo att blanda SQL och Pandas som ett proffs.
Komma igång: Grundläggande användning
Låt oss gå igenom ett enkelt exempel. Anta att du har en DataFrame:
pytonorm
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)
Detta returnerar hela DataFrame, precis som df.head() men med SQL-syntax. Du kan nu filtrera, gruppera och koppla samman precis som du skulle göra i en databas.
Verklig dataanalys med Pandas och SQL
Låt oss gå vidare med en praktisk datauppsättning. Tänk dig att du analyserar en bilförsäljningsdatauppsättning med kolumner som brand, model, year, price, mileageOch mycket mer.
Laddar och utforskar data
pytonorm
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())
Du ser kolumnnamnen, datatyperna och eventuella saknade värden – viktiga för kvalitetsdataanalys.
Köra SQL-frågor på DataFrames
Topp 10 dyraste bilar
pytonorm
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
""")
Genomsnittspris per märke
pytonorm
q("""
SELECT brand, ROUND(AVG(price), 2) AS avg_price
FROM car_data
GROUP BY brand
ORDER BY avg_price DESC
""")
Bilar tillverkade efter 2015
pytonorm
q("""
SELECT *
FROM car_data
WHERE year > 2015
ORDER BY year DESC
""")
Totalt antal bilar per märke
pytonorm
q("""
SELECT brand, COUNT(*) as total_listed
FROM car_data
GROUP BY brand
ORDER BY total_listed DESC
LIMIT 5
""")
Gruppering efter villkor
pytonorm
q("""
SELECT condition, ROUND(AVG(price), 2) AS avg_price, COUNT(*) as listings
FROM car_data
GROUP BY condition
ORDER BY avg_price DESC
""")
Genomsnittlig körsträcka och pris per märke
pytonorm
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
""")
Pris per mil
pytonorm
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
""")
Visualisera data efter stat
Du kan till och med använda widgets och Plotly för interaktiva dashboards:
pytonorm
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)
Detta gör din analys interaktiv och visuellt tilltalande – perfekt för dashboards eller presentationer.
Bortom pandasql: Native Pandas SQL-operationer
Medan pandasql är ett utmärkt val för snabba SQL-relaterade frågor, stöder Pandas även direkt SQL-integration för att arbeta med faktiska databaser (som SQLite, PostgreSQL, MySQL):
Exempel: Läsa och skriva till SQL
pytonorm
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)
Den här metoden är perfekt för ETL-pipelines, rapportering och arbetsflöden för produktionsdata.
Avancerade användningsfall: ETL, maskininlärning och dashboards

Att kombinera SQL och Pandas handlar inte bara om att fråga – det handlar om att bygga smartare arbetsflöden:
Pandasql vs. Pure Pandas: När ska man använda vad?
| Leverans | pandasql (SQL) | Rena pandor |
|---|---|---|
| syntax | SQL (bekant för många) | Python (flexibel, kraftfull) |
| läsbarhet | Hög för komplexa frågor | Kan bli utdragen |
| Prestanda | Långsammare på mycket stora datamängder | Snabbare, optimerad för Python |
| Går med/grupperar | Mycket intuitivt | Mer kod, men fler alternativ |
| Integration | Utmärkt för snabb analys | Bäst för produktionsarbetsflöden |
Begränsningar och bästa praxis
Avslutande tankar
Den integrerade användningen av Python Pandas och SQL representerar en viktig kompetens för dataanalytiker, AI ingenjörer och forskare. Denna metod anpassar relationsdatabasers frågor till Pandas kraftfulla DataFrame verksamhet, vilket förbättrar både effektivitet och kodtydlighet. Genom att utnyttja verktyg som pandasql tillsammans med Pandas inbyggda SQL-integration kan team utföra utforskande dataanalys (EDA), robusta ETL-arbetsflöden och maskininlärningspipelines i en sammanhängande miljö.
Statistik att komma ihåg:
Att använda denna dubbla metod säkerställer skalbara och underhållbara analysprocesser och positionerar team för långsiktig framgång.
Vill behålla din AI och skarpa datakunskaper?
Utforska fler handledningar om juridikexamina, prompt engineering, RAG och AI agentarbetsflöden. Håll utkik efter fler guider och praktiska exempel från AI MOJO


