Python Pandas og SQL | 2026 Guide til problemfri dataanalyse

Python Pandaer og SQL

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.

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.

Hvorfor kombinere Python Pandas og SQL?

Her er hvorfor det at blande disse to er revolutionerende:

Læsbarhed: SQL-forespørgsler er ofte klarere end tilsvarende Pandas-kode, især til kompleks filtrering, gruppering og join-funktioner.
Effektivitet: De fleste forretningsdata findes i SQL-databaser. At trække dem direkte ind i Pandas betyder mindre friktion og færre datasiloer.
Fleksibilitet: Du kan bruge SQL til krævende forespørgsler og Pandas til avanceret analyse, visualisering og machine learning.
Produktivitet: Dataforskere og analytikere kan holde sig til den syntaks, de elsker, uanset om det er SQL eller Python, uden at skulle skifte kontekst.

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

1

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
""")
2

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
""")
3

Biler produceret efter 2015

python

q("""
SELECT *
FROM car_data
WHERE year > 2015
ORDER BY year DESC
""")
4

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
""")
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
""")
6

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
""")
7

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
""")
8

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):

læs_sql()Læser en SQL-tabel eller forespørgsel ind i en DataFrame.
to_sql()Skriver en DataFrame til en SQL-tabel.

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

Avancerede brugsscenarier for SQL og Pandas

Kombinationen af ​​SQL og Pandas handler ikke kun om at forespørge – det handler om at bygge smartere arbejdsgange:

ETL Pipelines: Brug SQL til dataudtræk og Pandaer til transformation og indlæsning.
A/B-test: SQL henter eksperimentdata; Python kører statistiske tests og visualiserer resultater.
Maskinelæring: SQL henter funktioner; Pandas og scikit-learn håndterer funktionsudvikling og modellering.
Dashboards: SQL driver data-backend'en; Python og Plotly eller Dash bygger interaktive frontends.

Pandasql vs. Pure Pandas: Hvornår skal man bruge hvad?

Featurepandasql (SQL)Rene pandaer
SyntaksSQL (kendt for mange)Python (fleksibel, kraftfuld)
LæsbarhedHøj for komplekse forespørgslerKan blive ordrig
YdeevneLangsommere på meget store datasætHurtigere, optimeret til Python
Tilslutninger/GrupperingMeget intuitivtMere kode, men flere muligheder
IntegrationGod til hurtig analyseBedst til produktionsarbejdsgange
Pro tip:
For massive datasæt eller produktionskode er native Pandas eller direkte SQL-forbindelser hurtigere og mere robuste. Brug pandasql til udforskning, prototyping eller når SQL simpelthen er nemmere at læse.

Begrænsninger og bedste praksis

Ydelse: pandasql kan være langsommere på store DataFrames - overvej direkte Pandas eller SQLAlchemy til tunge løft.
Funktionalitet: Nogle avancerede Pandas-funktioner er ikke tilgængelige i SQL, og omvendt.
kompleksitet: For transformationer i flere trin kan det være tydeligere at sammenkæde Pandas-metoder.
Skalerbarhed: For big data, se på Polars, Dask eller Spark DataFrames.

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:

Over 80 % af dataforskere bruger Pandas i deres daglige arbejdsgange.
SQL er fortsat den mest efterspurgte færdighed i datajobopslag.
Kombination af Python Pandas og SQL kan reducere analysetiden med op til 50 %.

Ved at anvende denne dobbelte tilgang sikres skalerbare og vedligeholdelige analyseprocesser, der positionerer teams til langsigtet succes.

Giv en kommentar

Din e-mail adresse vil ikke blive offentliggjort. Krævede felter er markeret *

Dette websted bruger Akismet til at reducere spam. Lær, hvordan dine kommentardata behandles.

Deltag i Aimojo Stamme!

Slut dig til 76,200+ medlemmer for insider-tips hver uge! 
🎁 BONUS: Få vores 200 dollarsAI "Mestringsværktøjskasse" GRATIS ved tilmelding!

trending AI Værktøjer
Dondi AI

Altid ucensureret AI kæreste Gratis NSFW-ledsagerapp at starte

Åbn WebUI

Din selvhostede hjemmeside AI Kommandocenter for total datakontrol Open source LLM-grænsefladen, som over 418 brugere verden over har tillid til

Åbn Notesbog

Tag fuld kontrol over din AI Research Workflow uden at opgive dine data Det privatlivsorienterede, open source NotebookLM-alternativ bygget til seriøse forskere

Ollama

Kør enhver åben LLM lokalt — Nul cloudafhængighed, total datakontrol Det lokale i udviklerklasse AI runtime til privat, omkostningsfri modelinferens

MiroFish

Forudsig enhver beslutning, før den koster dig penge AI Sværmsimuleringsmotor til scenarieprognoser

© Ophavsret 2023 - 2026 | Bliv en AI Professionel | Lavet med ♥