Birleşimlerle birden çok tabloyu yükleme

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

Amany Mahfouz

Instructor

Anahtarlar

  • Veritabanı kayıtlarının benzersiz tanımlayıcıları (anahtarları) vardır

unique_key sütunu vurgulanmış 311 çağrı verileri. Benzersiz anahtarlar sayılardır.

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

Anahtarlar

  • Veritabanı kayıtlarının benzersiz tanımlayıcıları (anahtarları) vardır

Ders kataloğu verileri; course_code sütunu vurgulanmış. Kodlar konu kısaltmaları ve sayılardan oluşur.

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

Anahtarlar

  • Veritabanı kayıtlarının benzersiz tanımlayıcıları (anahtarları) vardır

Ders kataloğu verileri; instructor_id sütunu vurgulanmış. Değerler 9 haneli tamsayılardır.

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

Anahtarlar

Professor tablosu; id sütunu vurgulanmış. Değerler ders kataloğundaki instructor_id'ler gibi 9 haneli tamsayılardır.

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

Anahtarlar

Ders kataloğu verileri; profesör adları sütunu birleştirilmiş

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

Tabloları Birleştirme

Tarih sütunu vurgulanmış hava durumu verileri

created_date sütunu vurgulanmış 311 çağrı verileri

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

Tabloları Birleştirme

SELECT *
  FROM hpd311calls
pandas ile Kolaylaştırılmış Veri Alımı

Tabloları Birleştirme

SELECT *
  FROM hpd311calls
       JOIN weather 
       ON hpd311calls.created_date = weather.date;
  • Birden çok tabloda nokta gösterimini kullanın (table.column)
  • Varsayılan join, anahtarları her iki tabloda da olan kayıtları döndürür
  • Join anahtarlarının veri türleri aynı olmalıdır; yoksa eşleşme olmaz
pandas ile Kolaylaştırılmış Veri Alımı

Birleştirme ve Filtreleme

/* Yalnızca ısıtma/sıcak su çağrılarını al ve hava durumunu birleştir */
SELECT *
  FROM hpd311calls
       JOIN weather 
       ON hpd311calls.created_date = weather.date
 WHERE hpd311calls.complaint_type = 'HEAT/HOT WATER';
pandas ile Kolaylaştırılmış Veri Alımı

Birleştirme ve Toplama

/* İlçeye göre çağrı sayılarını al */
SELECT hpd311calls.borough, 
         COUNT(*)
  FROM hpd311calls
 GROUP BY hpd311calls.borough;
pandas ile Kolaylaştırılmış Veri Alımı

Birleştirme ve Toplama

/* İlçeye göre çağrı sayılarını al
   ve nüfus ile konut sayılarını birleştir */
SELECT hpd311calls.borough, 
       COUNT(*), 
       boro_census.total_population,
       boro_census.housing_units
  FROM hpd311calls
 GROUP BY hpd311calls.borough
pandas ile Kolaylaştırılmış Veri Alımı

Birleştirme ve Toplama

/* İlçeye göre çağrı sayılarını al
   ve nüfus ile konut sayılarını birleştir */
SELECT hpd311calls.borough, 
       COUNT(*), 
       boro_census.total_population,
       boro_census.housing_units
  FROM hpd311calls
       JOIN boro_census 
       ON hpd311calls.borough = boro_census.borough
 GROUP BY hpd311calls.borough;
pandas ile Kolaylaştırılmış Veri Alımı
query = """SELECT hpd311calls.borough, 
                    COUNT(*), 
                    boro_census.total_population,
                    boro_census.housing_units
             FROM hpd311calls
                  JOIN boro_census 
                  ON hpd311calls.borough = boro_census.borough
            GROUP BY hpd311calls.borough;"""

call_counts = pd.read_sql(query, engine)
print(call_counts)
         borough  COUNT(*)  total_population  housing_units
0          BRONX     29874           1455846         524488
1       BROOKLYN     31722           2635121        1028383
2      MANHATTAN     20196           1653877         872645
3         QUEENS     11384           2339280         850422
4  STATEN ISLAND      1322            475948         179179
pandas ile Kolaylaştırılmış Veri Alımı

Gözden Geçirme

  • SQL anahtar sözcük sırası
    • SELECT
    • FROM
    • JOIN
    • WHERE
    • GROUP BY
pandas ile Kolaylaştırılmış Veri Alımı

Ayo berlatih!

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

Preparing Video For Download...