Python Pandas a SQL | Průvodce bezproblémovou analýzou dat pro rok 2026

Python Pandy a SQL

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.

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ší.

Proč kombinovat Python Pandas a SQL?

Zde je důvod, proč je smíchání těchto dvou věcí zásadní:

Čitelnost: SQL dotazy jsou často přehlednější než ekvivalentní kód v Pandasu, zejména pro komplexní filtrování, seskupování a spojení.
Účinnost: Většina obchodních dat se nachází v databázích SQL. Jejich přímé načtení do Pandas znamená menší tření a méně datových sil.
Flexibilita: SQL můžete použít pro náročné dotazování a Pandas pro pokročilou analýzu, vizualizaci a… strojové učení.
Produktivita: Datoví vědci a analytici se mohou držet syntaxe, kterou milují, ať už je to SQL nebo Python, bez přepínání kontextu.

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

1

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

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

Vozy vyrobené po roce 2015

krajta

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

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

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

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

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

read_sql()Načte SQL tabulku nebo dotaz do DataFrame.
to_sql()Zapíše datový rámec (DataFrame) do tabulky SQL.

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

Pokročilé případy použití SQL a Pandas

Kombinace SQL a Pandas se netýká jen dotazování – jde o budování chytřejších pracovních postupů:

ETL potrubí: Použijte SQL pro extrakce dat a Pandy pro transformaci a načítání.
A/B testování: SQL načítá data experimentů; Python spouští statistické testy a vizualizuje výsledky.
Strojové učení: SQL načítá funkce; Pandas a scikit-learn se postarají o inženýrství a modelování funkcí.
Přístrojové desky: SQL pohání datový backend; Python a Plotly nebo Dash vytvářejí interaktivní frontendy.

Pandasql vs. Pure Pandas: Kdy co použít?

vlastnostpandasql (SQL)Čisté pandy
SyntaxSQL (známý mnoha)Python (flexibilní, výkonný)
čitelnostVysoká pro složité dotazyMůže být upovídaný
VýkonPomalejší na velmi velkých datových sadáchRychlejší, optimalizovaný pro Python
Spojení/SeskupeníVelmi intuitivníVíce kódu, ale více možností
IntegraceSkvělé pro rychlou analýzuNejlepší pro produkční pracovní postupy
Pro tip:
Pro rozsáhlé datové sady nebo produkční kód jsou nativní Pandas nebo přímá SQL připojení rychlejší a robustnější. Pandasql použijte pro průzkum, prototypování nebo když je SQL jednoduše snáze čitelný.

Omezení a doporučené postupy

Výkon: pandasql může být na velkých datových rámech pomalejší – zvažte přímé Pandy nebo SQLAlchemy pro těžké zvedání.
Funkce: Některé pokročilé funkce Pandas nejsou v SQL dostupné a naopak.
Složitost: Pro vícekrokové transformace může být řetězení metod Pandas přehlednější.
Škálovatelnost: Pro velká data se podívejte na Polars, Dask nebo Spark DataFrames.

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

Více než 80 % datových vědců se ve svých každodenních pracovních postupech spoléhá na platformy Panda.
SQL zůstává nejžádanější dovedností v pracovní nabídky v oblasti dat.
Kombinace Python Pandas a SQL může zkrátit dobu analýzy až o 50 %.

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.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *

Tyto stránky používají Akismet k omezení spamu. Přečtěte si, jak jsou zpracovávána data vašich komentářů.

Zapojte se do Aimojo Kmen!

Připojte se k více než 76,200 XNUMX členům a získejte každý týden zasvěcené tipy! 
???? BONUS: Získejte našich 200 dolarůAI „Sada nástrojů pro mistrovství“ ZDARMA při registraci!

Trending AI Tools
netlify

Rychlejší nasazení, chytřejší škálování: Moderní webová platforma pro seriózní stavitele CI/CD s využitím Gitu, globální CDN a bezserverová síť – vše na jednom místě.

Holografická umělá inteligence

Proměňte svůj web v plnohodnotný marketingový nástroj – bez týmu. Generátor reklamního, sociálního a e-mailového obsahu s umělou inteligencí, vytvořený pro zakladatele a marketéry.

Articos

Dodávka s důkazy, ne s pocity – Uživatelský výzkum rychlostí Sprintu Syntetický uživatelský výzkum s využitím umělé inteligence, který poskytuje ověřené poznatky o publiku za 30 minut

Palabra.ai

Prolomte každou jazykovou bariéru v reálném čase – aniž byste ztratili hlas Překladač řeči s umělou inteligencí, určený pro živé události, hovory a streamování

Sentaro

váš AI Agent pro analýzu hrozeb, který zastaví e-mailové útoky dříve, než na ně kdokoli klikne Zabezpečení e-mailů pro Gmail a Outlook s využitím umělé inteligence – žádné změny MX, žádná složitost.

© Copyright 2023 - 2026 | Staňte se AI Pro | Vyrobeno s ♥