SQL sorgularıyla içe aktarımları iyileştirme

pandas ile Kolaylaştırılmış Veri Alımı

Amany Mahfouz

Instructor

Sütun Seçme (SELECT)

  • SELECT [column names] FROM [table name];
  • Örnek:
    SELECT date, tavg 
    FROM weather;
    
pandas ile Kolaylaştırılmış Veri Alımı

WHERE Koşulları

  • Kayıtları seçerek içe aktarmak için WHERE kullanın
    SELECT [column_names] 
      FROM [table_name] 
     WHERE [condition];
    
pandas ile Kolaylaştırılmış Veri Alımı

Sayılarla Filtreleme

  • Sayıları matematiksel operatörlerle karşılaştırın
    • =
    • > ve >=
    • < ve <=
    • <> (eşit değil)
    • Örnek:
      SELECT * 
      FROM weather 
      WHERE tmax > 32;
      
pandas ile Kolaylaştırılmış Veri Alımı

Metinle Filtreleme

  • Tam metin eşleşmesi için = ve aranacak metni kullanın
  • Metin eşleştirme büyük/küçük harfe duyarlıdır
  • Örnek:
    /* Brooklyn'deki olay kayıtlarını alın */
    SELECT * 
    FROM hpd311calls
    WHERE borough = 'BROOKLYN';
    
pandas ile Kolaylaştırılmış Veri Alımı

SQL ve pandas

# Kütüphaneleri yükle
import pandas as pd
from sqlalchemy import create_engine

# Veritabanı motorunu oluştur engine = create_engine("sqlite:///data.db")
# Brooklyn'den kayıtları almak için sorgu yaz query = """SELECT * FROM hpd311calls WHERE borough = 'BROOKLYN';"""
# Veritabanını sorgula brooklyn_calls = pd.read_sql(query, engine)
print(brookyn_calls.borough.unique())
['BROOKLYN']
pandas ile Kolaylaştırılmış Veri Alımı

Koşulları Birleştirme: AND

  • AND ile kullanılan WHERE tüm koşulları sağlayan kayıtları döndürür
# Bronx'taki sıhhi tesisat kayıtlarını almak için sorgu yaz
and_query = """SELECT * 
                 FROM hpd311calls 
                WHERE borough = 'BRONX' 
                  AND complaint_type = 'PLUMBING';"""

# Bronx'taki sıhhi tesisat çağrılarını al bx_plumbing_calls = pd.read_sql(and_query, engine) # Kayıt sayısını kontrol et print(bx_plumbing_calls.shape)
(2016, 8)
pandas ile Kolaylaştırılmış Veri Alımı

Koşulları Birleştirme: OR

  • OR ile kullanılan WHERE en az bir koşulu sağlayan kayıtları döndürür
# Su sızıntısı veya sıhhi tesisat ile ilgili kayıtları almak için sorgu yaz
or_query = """SELECT * 
                FROM hpd311calls 
               WHERE complaint_type = 'WATER LEAK'
                  OR complaint_type = 'PLUMBING';"""

# Sıhhi tesisat veya su sızıntısı ile ilgili çağrıları al leaks_or_plumbing = pd.read_sql(or_query, engine) # Kayıt sayısını kontrol et print(leaks_or_plumbing.shape)
(10684, 8)
pandas ile Kolaylaştırılmış Veri Alımı

Hadi pratik yapalım!

pandas ile Kolaylaştırılmış Veri Alımı

Preparing Video For Download...