
Python Pandas a SQL tvoří základ pro analýzu dat, strojové učení a ETL pipelines. Zpracování velkých datových rámců a spouštění složitých databázových dotazů vyžaduje efektivitu bez obětování srozumitelnosti kódu.
Vkládání SQL dotazů do Pandas Pracovní postupy zrychlují filtrování, agregaci a spojení a zároveň zachovávají flexibilitu Pythonu a konzistenci výsledků.
Tato příručka se zabývá nastavením pandasql a nativními SQL metodami Pandas, představuje příklady dotazů DataFrame z reálného světa a popisuje osvědčené postupy pro optimalizaci. analytické pracovní postupy a hlášení.
Proč kombinovat Python Pandas a SQL?
Pandy je knihovna Pythonu vytvořená pro manipulaci s daty a jejich analýzu. Je to klíčové pro rozdělení, dělení a transformaci tabulkových dat. SQL (Structured Query Language) je na druhou stranu zlatým standardem pro dotazování relačních databází – například MySQL, PostgreSQL, SQLite a další.

Zde je důvod, proč je smíchání těchto dvou věcí zásadní:
Most: integrace pandasql a nativní SQL pro Pandas
pandasql umožňuje spouštění SQL dotazů přímo na Pandas DataFrames, čímž eliminuje nutnost exportovat data, zřídit samostatnou databázi nebo přijmout další API; uživatelé jednoduše napíší příkazy SQL, obdrží výsledný DataFrame a pokračují bez přerušení.
Instalace pandasql
krajta
pip install pandasql
Nyní jste připraveni kombinovat SQL a Pandas jako profesionál.
Začínáme: Základní použití
Pojďme si ukázat jednoduchý příklad. Předpokládejme, že máte DataFrame:
krajta
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)
Toto vrátí celý DataFrame, stejně jako df.head() ale s použitím syntaxe SQL. Nyní můžete filtrovat, seskupovat a spojovat stejně jako v databázi.
Analýza reálných dat s Pandas a SQL
Pojďme se podívat na praktický soubor dat. Představte si, že analyzujete soubor dat o prodeji automobilů se sloupci jako brand, model, year, price, mileage, A další.
Načítání a prozkoumávání dat
krajta
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())
Uvidíte názvy sloupců, typy data jakékoli chybějící hodnoty – nezbytné pro kvalitní analýzu dat.
Spouštění SQL dotazů na datových rámech
10 nejdražších aut
krajta
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
""")
Průměrná cena podle značky
krajta
q("""
SELECT brand, ROUND(AVG(price), 2) AS avg_price
FROM car_data
GROUP BY brand
ORDER BY avg_price DESC
""")
Vozy vyrobené po roce 2015
krajta
q("""
SELECT *
FROM car_data
WHERE year > 2015
ORDER BY year DESC
""")
Celkem vozů podle značky
krajta
q("""
SELECT brand, COUNT(*) as total_listed
FROM car_data
GROUP BY brand
ORDER BY total_listed DESC
LIMIT 5
""")
Seskupení podle podmínky
krajta
q("""
SELECT condition, ROUND(AVG(price), 2) AS avg_price, COUNT(*) as listings
FROM car_data
GROUP BY condition
ORDER BY avg_price DESC
""")
Průměrný počet najetých kilometrů a cena podle značky
krajta
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
""")
Cena za míli
krajta
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
""")
Vizualizace dat podle státu
Můžete dokonce použít widgety a Plotly pro interaktivní dashboardy:
krajta
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)
Díky tomu je vaše analýza interaktivní a vizuálně přitažlivá – ideální pro dashboardy nebo prezentace.
Více než pandasql: Nativní operace Pandas SQL
Zatímco pandasql je eso pro rychlé dotazy ve stylu SQL, Pandas také podporuje přímou integraci SQL pro práci se skutečnými databázemi (jako je SQLite, PostgreSQL, MySQL):
Příklad: Čtení a zápis do SQL
krajta
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)
Tento přístup je ideální pro ETL kanály, reporting a pracovní postupy s produkčními daty.
Pokročilé případy užití: ETL, strojové učení a dashboardy

Kombinace SQL a Pandas se netýká jen dotazování – jde o budování chytřejších pracovních postupů:
Pandasql vs. Pure Pandas: Kdy co použít?
| vlastnost | pandasql (SQL) | Čisté pandy |
|---|---|---|
| Syntax | SQL (známý mnoha) | Python (flexibilní, výkonný) |
| čitelnost | Vysoká pro složité dotazy | Může být upovídaný |
| Výkon | Pomalejší na velmi velkých datových sadách | Rychlejší, optimalizovaný pro Python |
| Spojení/Seskupení | Velmi intuitivní | Více kódu, ale více možností |
| Integrace | Skvělé pro rychlou analýzu | Nejlepší pro produkční pracovní postupy |
Omezení a doporučené postupy
Závěrečné myšlenky
Integrované používání Pythonu, Pandas a SQL představuje zásadní kompetenci pro datové analytiky, AI inženýry a výzkumné pracovníky. Tato metodologie propojuje dotazování v relačních databázích s Výkonný datový rámec Pandas operace, což zvyšuje efektivitu i srozumitelnost kódu. Využitím nástrojů, jako je pandasql, spolu s nativní integrací SQL od Pandas mohou týmy provádět průzkumnou analýzu dat (EDA), robustní pracovní postupy ETL a kanály strojového učení v rámci soudržného prostředí.
Statistiky k zapamatování:
Přijetí tohoto dvojího přístupu zajišťuje škálovatelné a udržovatelné analytické procesy a připravuje týmy na dlouhodobý úspěch.
Chcete si nechat AI a máte dobré datové dovednosti?
Prozkoumejte další tutoriály o LLM, prompt engineeringu, RAG a AI pracovní postupy agentů. Zůstaňte naladěni na další návody a praktické příklady od AI MOJO


