
Python Pandas og SQL danner fundamentet for dataanalyse, maskinlæring og ETL-pipelines. Håndtering af store DataFrames og kørsel af komplekse databaseforespørgsler kræver effektivitet uden at gå på kompromis med kodens klarhed.
Integrering af SQL-forespørgsler i Pandas Arbejdsgange accelererer filtrering, aggregering og joinforbindelser, samtidig med at Pythons fleksibilitet og resultatkonsistens bevares.
Denne guide dækker opsætning af pandasql og Pandas' native SQL-metoder, præsenterer eksempler på DataFrame-forespørgsler fra den virkelige verden og beskriver bedste praksis for at optimere analysearbejdsgange og rapportering.
Hvorfor kombinere Python Pandas og SQL?
pandas er et Python-bibliotek bygget til datamanipulation og -analyse. Det er det rette valg til at opdele, segmentere og transformere tabeldata. SQL (Structured Query Language) er derimod guldstandarden til forespørgsler på relationelle databaser – tænk på MySQL, PostgreSQL, SQLite og flere.

Her er hvorfor det at blande disse to er revolutionerende:
Broen: Pandasql og Native Pandas SQL-integration
pandasql muliggør udførelse af SQL-forespørgsler direkte på Pandas DataFrames, hvilket eliminerer behovet for eksporter data, klargøre en separat database eller implementere yderligere API'er; brugerne skriver blot SQL-sætninger, modtager en resulterende DataFrame og fortsætter uafbrudt.
Installation af pandasql
python
pip install pandasql
Nu er du klar til at blande SQL og Pandas som en professionel.
Introduktion: Grundlæggende brug
Lad os gennemgå et simpelt eksempel. Antag, at du har en 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)
Dette returnerer den fulde DataFrame, ligesom df.head() men ved hjælp af SQL-syntaks. Du kan nu filtrere, gruppere og join-dele ligesom du ville gøre i en database.
Dataanalyse fra den virkelige verden med Pandas og SQL
Lad os gå op i niveau med et praktisk datasæt. Forestil dig, at du analyserer et bilsalgsdatasæt med kolonner som brand, model, year, price, mileageOg meget mere.
Indlæsning og udforskning af data
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())
Du vil se kolonnenavnene, datatyperog eventuelle manglende værdier – afgørende for kvalitetsdataanalyse.
Kørsel af SQL-forespørgsler på DataFrames
Top 10 dyreste biler
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
""")
Gennemsnitspris efter mærke
python
q("""
SELECT brand, ROUND(AVG(price), 2) AS avg_price
FROM car_data
GROUP BY brand
ORDER BY avg_price DESC
""")
Biler produceret efter 2015
python
q("""
SELECT *
FROM car_data
WHERE year > 2015
ORDER BY year DESC
""")
Samlet antal biler efter mærke
python
q("""
SELECT brand, COUNT(*) as total_listed
FROM car_data
GROUP BY brand
ORDER BY total_listed DESC
LIMIT 5
""")
Gruppering efter betingelse
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
""")
Gennemsnitlig kilometertal og pris efter mærke
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
""")
Pris pr. mil
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
""")
Visualisering af data efter stat
Du kan endda bruge widgets og Plotly til interaktive 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)
Dette gør din analyse interaktiv og visuelt tiltalende – perfekt til dashboards eller præsentationer.
Ud over pandasql: Native Pandas SQL-operationer
Mens pandasql er et paradis til hurtige SQL-lignende forespørgsler, understøtter Pandas også direkte SQL-integration til arbejde med faktiske databaser (som SQLite, PostgreSQL, MySQL):
Eksempel: Læsning og skrivning til 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)
Denne tilgang er perfekt til ETL-pipelines, rapportering og arbejdsgange for produktionsdata.
Avancerede brugsscenarier: ETL, maskinlæring og dashboards

Kombinationen af SQL og Pandas handler ikke kun om at forespørge – det handler om at bygge smartere arbejdsgange:
Pandasql vs. Pure Pandas: Hvornår skal man bruge hvad?
| Feature | pandasql (SQL) | Rene pandaer |
|---|---|---|
| Syntaks | SQL (kendt for mange) | Python (fleksibel, kraftfuld) |
| Læsbarhed | Høj for komplekse forespørgsler | Kan blive ordrig |
| Ydeevne | Langsommere på meget store datasæt | Hurtigere, optimeret til Python |
| Tilslutninger/Gruppering | Meget intuitivt | Mere kode, men flere muligheder |
| Integration | God til hurtig analyse | Bedst til produktionsarbejdsgange |
Begrænsninger og bedste praksis
Afsluttende tanker
Den integrerede brug af Python Pandas og SQL repræsenterer en essentiel kompetence for dataanalytikere, AI ingeniører og forskere. Denne metode tilpasser relationelle databaseforespørgsler med Pandas' kraftfulde DataFrame operationer, hvilket forbedrer både effektivitet og kodeklarhed. Ved at udnytte værktøjer som pandasql sammen med Pandas' native SQL-integration kan teams udføre udforskende dataanalyse (EDA), robuste ETL-arbejdsgange og maskinlæringspipelines i et sammenhængende miljø.
Statistikker at huske:
Ved at anvende denne dobbelte tilgang sikres skalerbare og vedligeholdelige analyseprocesser, der positionerer teams til langsigtet succes.
Vil du beholde din AI og skarpe datafærdigheder?
Udforsk flere vejledninger om LLM'er, prompt engineering, RAG og AI Agentarbejdsgange. Hold øje med flere vejledninger og praktiske eksempler fra AI MOJO

