Imports verfijnen met SQL-queries

Gestroomlijnde data-inname met pandas

Amany Mahfouz

Instructor

Kolommen SELECTen

  • SELECT [kolomnamen] FROM [tabelnaam];
  • Voorbeeld:
    SELECT date, tavg 
    FROM weather;
    
Gestroomlijnde data-inname met pandas

WHERE-clausules

  • Gebruik een WHERE-clausule om records selectief te importeren
    SELECT [column_names] 
      FROM [table_name] 
     WHERE [condition];
    
Gestroomlijnde data-inname met pandas

Filteren op getallen

  • Vergelijk getallen met wiskundige operatoren
    • =
    • > en >=
    • < en <=
    • <> (niet gelijk aan)
    • Voorbeeld:
      SELECT * 
      FROM weather 
      WHERE tmax > 32;
      
Gestroomlijnde data-inname met pandas

Filteren op tekst

  • Kom exact overeen met strings met = en de te matchen tekst
  • Stringmatching is hoofdlettergevoelig
  • Voorbeeld:
    /* Haal records op over incidenten in Brooklyn */
    SELECT * 
    FROM hpd311calls
    WHERE borough = 'BROOKLYN';
    
Gestroomlijnde data-inname met pandas

SQL en pandas

# Libraries laden
import pandas as pd
from sqlalchemy import create_engine

# Database-engine maken engine = create_engine("sqlite:///data.db")
# Schrijf query om records uit Brooklyn op te halen query = """SELECT * FROM hpd311calls WHERE borough = 'BROOKLYN';"""
# Query de database brooklyn_calls = pd.read_sql(query, engine)
print(brookyn_calls.borough.unique())
['BROOKLYN']
Gestroomlijnde data-inname met pandas

Voorwaarden combineren: AND

  • WHERE-clausules met AND geven records die aan alle voorwaarden voldoen
# Schrijf query om meldingen over loodgieterij in de Bronx op te halen
and_query = """SELECT * 
                 FROM hpd311calls 
                WHERE borough = 'BRONX' 
                  AND complaint_type = 'PLUMBING';"""

# Haal meldingen over loodgieterproblemen in de Bronx op bx_plumbing_calls = pd.read_sql(and_query, engine) # Controleer het aantal records print(bx_plumbing_calls.shape)
(2016, 8)
Gestroomlijnde data-inname met pandas

Voorwaarden combineren: OR

  • WHERE-clausules met OR geven records die aan minstens één voorwaarde voldoen
# Schrijf query om meldingen over waterlekken of loodgieterij op te halen
or_query = """SELECT * 
                FROM hpd311calls 
               WHERE complaint_type = 'WATER LEAK'
                  OR complaint_type = 'PLUMBING';"""

# Haal meldingen over loodgieterij of waterlekken op leaks_or_plumbing = pd.read_sql(or_query, engine) # Controleer het aantal records print(leaks_or_plumbing.shape)
(10684, 8)
Gestroomlijnde data-inname met pandas

Laten we oefenen!

Gestroomlijnde data-inname met pandas

Preparing Video For Download...