
Python Pandas ve SQL, veri analizi, makine öğrenimi ve ETL boru hatlarının temelini oluşturur. Büyük Veri Çerçevelerini işlemek ve karmaşık veritabanı sorgularını çalıştırmak, kod netliğinden ödün vermeden verimlilik gerektirir.
Pandas'a SQL sorgularını yerleştirme İş akışları, Python'ın esnekliğini ve sonuç tutarlılığını korurken filtrelemeyi, toplamayı ve birleştirmeyi hızlandırır.
Bu kılavuz, pandasql kurulumunu ve Pandas'ın yerel SQL yöntemlerini ele alır, gerçek dünya DataFrame sorgu örneklerini sunar ve optimizasyon için en iyi uygulamaları ana hatlarıyla belirtir analitik iş akışları ve raporlama.
Python Pandas ve SQL Neden Birleştirilmeli?
Pandalar veri işleme ve analizi için oluşturulmuş bir Python kütüphanesidir. Tablo verilerini dilimlemek, parçalara ayırmak ve dönüştürmek için başvurulacak yerdir. SQL (Yapılandırılmış Sorgu Dili) ise ilişkisel veritabanlarını (MySQL, PostgreSQL, SQLite ve daha fazlasını düşünün) sorgulamak için altın standarttır.

İşte bu ikisinin harmanlanmasının oyunun kurallarını değiştirecek olmasının nedeni:
Köprü: pandasql ve Native Pandas SQL Entegrasyonu
pandasql, SQL sorgularının doğrudan Pandas DataFrames üzerinde yürütülmesini sağlayarak, verileri dışa aktar, ayrı bir veritabanı sağlayın veya ek API'ler benimseyin; kullanıcılar yalnızca SQL ifadeleri yazar, ortaya çıkan bir DataFrame alır ve kesintisiz olarak devam eder.
Pandasql'i yükleme
piton
pip install pandasql
Artık SQL ve Pandas'ı bir profesyonel gibi harmanlamaya hazırsınız.
Başlarken: Temel Kullanım
Basit bir örnek üzerinden gidelim. Diyelim ki bir DataFrame'iniz var:
piton
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)
Bu, tıpkı şu şekilde olduğu gibi tam DataFrame'i döndürür: df.head() ancak SQL sözdizimini kullanarak. Artık tıpkı bir veritabanında yaptığınız gibi filtreleyebilir, gruplayabilir ve birleştirebilirsiniz.
Pandas ve SQL ile Gerçek Dünya Veri Analizi
Pratik bir veri setiyle seviye atlayalım. Aşağıdaki sütunlara sahip bir araba satış veri setini analiz ettiğinizi düşünün: brand, model, year, price, mileageVe daha fazlası.
Veri Yükleme ve Keşfetme
piton
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())
Sütun adlarını göreceksiniz, veri tiplerive kaliteli veri analizi için gerekli olan eksik değerler.
Veri Çerçevelerinde SQL Sorgularını Çalıştırma
En Pahalı 10 Araba
piton
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
""")
Markaya Göre Ortalama Fiyat
piton
q("""
SELECT brand, ROUND(AVG(price), 2) AS avg_price
FROM car_data
GROUP BY brand
ORDER BY avg_price DESC
""")
2015'ten Sonra Üretilen Arabalar
piton
q("""
SELECT *
FROM car_data
WHERE year > 2015
ORDER BY year DESC
""")
Markaya Göre Toplam Arabalar
piton
q("""
SELECT brand, COUNT(*) as total_listed
FROM car_data
GROUP BY brand
ORDER BY total_listed DESC
LIMIT 5
""")
Koşula Göre Gruplama
piton
q("""
SELECT condition, ROUND(AVG(price), 2) AS avg_price, COUNT(*) as listings
FROM car_data
GROUP BY condition
ORDER BY avg_price DESC
""")
Markaya Göre Ortalama Kilometre ve Fiyat
piton
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
""")
Mil Başına Fiyat
piton
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
""")
Eyaletlere Göre Verilerin Görselleştirilmesi
Etkileşimli panolar için widget'ları ve Plotly'yi bile kullanabilirsiniz:
piton
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)
Bu, analizinizi etkileşimli ve görsel olarak çekici hale getirir; gösterge panelleri veya sunumlar.
Pandasql'in ötesinde: Yerel Pandas SQL İşlemleri
Pandasql hızlı SQL tarzı sorgular için harika olsa da, Pandas gerçek veritabanlarıyla (SQLite, PostgreSQL, MySQL gibi) çalışmak için doğrudan SQL entegrasyonunu da destekler:
Örnek: SQL'e Okuma ve Yazma
piton
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)
Bu yaklaşım ETL hatları, raporlama ve üretim verisi iş akışları için mükemmeldir.
Gelişmiş Kullanım Örnekleri: ETL, Makine Öğrenmesi ve Panolar

SQL ve Pandas'ı birleştirmek yalnızca sorgulama yapmakla ilgili değil; daha akıllı iş akışları oluşturmakla ilgilidir:
Pandasql ve Pure Pandas: Ne Zaman Hangisini Kullanmalısınız?
| Özellik | pandasql (SQL) | Saf Pandalar |
|---|---|---|
| Sözdizimi | SQL (çoğu kişiye tanıdık gelir) | Python (esnek, güçlü) |
| okunabilirlik | Karmaşık sorgular için yüksek | Ayrıntılı olabilir |
| Performans | Çok büyük veri kümelerinde daha yavaş | Daha hızlı, Python için optimize edildi |
| Birleştirmeler/Gruplamalar | Çok sezgisel | Daha fazla kod, ama daha fazla seçenek |
| Entegrasyonu | Hızlı analiz için harika | Üretim iş akışları için en iyisi |
Sınırlamalar ve En İyi Uygulamalar
Son Düşüncelerimiz
Python Pandas ve SQL'in entegre kullanımı, veri analistleri için temel bir yeterliliktir. AI mühendisler ve araştırma profesyonelleri. Bu metodoloji, ilişkisel veritabanı sorgulamasını Pandas'ın güçlü DataFrame'i operasyonlar, hem verimliliği hem de kod netliğini artırır. Pandasql gibi araçları Pandas'ın yerel SQL entegrasyonuyla birlikte kullanarak, ekipler tutarlı bir ortamda keşifsel veri analizi (EDA), sağlam ETL iş akışları ve makine öğrenimi hatlarını yürütebilir.
Hatırlanması gereken istatistikler:
Bu ikili yaklaşımın benimsenmesi, ölçeklenebilir ve sürdürülebilir analitik süreçlerin sağlanmasını ve ekiplerin uzun vadeli başarıya ulaşmasını sağlar.
senin tutmak istiyorum AI ve veri becerileriniz keskin mi?
LLM'ler, istem mühendisliği, RAG ve daha fazla öğreticiyi keşfedin AI ajan iş akışları. Daha fazla kılavuz ve uygulamalı örnekler için bizi izlemeye devam edin AI MOJO

