Eksik verileri yönetme

PostgreSQL Veritabanlarında Veri Temizleme

Darryl Reeves, Ph.D.

Industry Assistant Professor, New York University

Eksik veri (bir örnek)

 ... |       name       | score |               inspection_type                | ... 
 ----+------------------+-------+----------------------------------------------+-----
 ... | ...              | ...   | ...                                          | ...
 ... | SCHNIPPERS       | 27    | Cycle Inspection / Initial Inspection        | ...
 ... | ATOMIC WINGS     |       | Administrative Miscellaneous / Re-inspection | ...
 ... | WING LING        | 44    | Cycle Inspection / Initial Inspection        | ...
 ... | JUAN VALDEZ CAFE | 24    | Cycle Inspection / Initial Inspection        | ...
 ... | FULTON GRAND     | 22    | Cycle Inspection / Initial Inspection        | ...
 ... | ...              | ...   | ...                                          | ...

Eksik değer gösterimleri:

  • NULL (genel)
  • '' - boş dize (metin sütunları için)
PostgreSQL Veritabanlarında Veri Temizleme

Eksik verinin nedenleri

Eksik veriye ne sebep olur? Eksik parçası olan siyah yapboz

  • Bir baş silüetinde insan beyni görseli insan hatası
  • Dişli çarklar görseli sistematik sorunlar
PostgreSQL Veritabanlarında Veri Temizleme

Eksik veri türleri

Kategori ve kısaltmaları listelenmiş farklı eksik veri türlerini gösteren üç görsel

PostgreSQL Veritabanlarında Veri Temizleme

Eksik veri türleri

Kategori ve kısaltmaları listelenmiş farklı eksik veri türlerini, ayrıca Rastgele Tamamen Eksik açıklamasını gösteren üç görsel

PostgreSQL Veritabanlarında Veri Temizleme

Eksik veri türleri

Kategori ve kısaltmaları listelenmiş farklı eksik veri türlerini, ayrıca Rastgele Eksik açıklamasını gösteren üç görsel

PostgreSQL Veritabanlarında Veri Temizleme

Eksik veri türleri

 ... |       name       | score |               inspection_type                | ... 
 ----+------------------+-------+----------------------------------------------+-----
 ... | ...              | ...   | ...                                          | ...
 ... | SCHNIPPERS       | 27    | Cycle Inspection / Initial Inspection        | ...
 ... | ATOMIC WINGS     |       | Administrative Miscellaneous / Re-inspection | ...
 ... | WING LING        | 44    | Cycle Inspection / Initial Inspection        | ...
 ... | JUAN VALDEZ CAFE | 24    | Cycle Inspection / Initial Inspection        | ...
 ... | FULTON GRAND     | 22    | Cycle Inspection / Initial Inspection        | ...
 ... | ...              | ...   | ...                                          | ...
PostgreSQL Veritabanlarında Veri Temizleme

Eksik veri türleri

Kategori ve kısaltmaları listelenmiş farklı eksik veri türlerini, ayrıca Rastgele Olmayan Eksik açıklamasını gösteren üç görsel

PostgreSQL Veritabanlarında Veri Temizleme

Eksik veriyi tespit etme

SELECT
  *
FROM
  restaurant_inspection
WHERE
  score IS NULL;
SELECT
  COUNT(*)
FROM
  restaurant_inspection
WHERE
  score IS NULL;
PostgreSQL Veritabanlarında Veri Temizleme

Eksik veriyi tespit etme

SELECT
  inspection_type,
  COUNT(*) as count
FROM
  restaurant_inspection
WHERE
  score IS NULL
GROUP BY
  inspection_type
ORDER BY
  count DESC;
                  inspection_type                  | count 
 --------------------------------------------------+-------
 Administrative Miscellaneous / Initial Inspection |   104
 Smoke-Free Air Act / Initial Inspection           |    29
 Calorie Posting / Initial Inspection              |    22
 Administrative Miscellaneous / Re-inspection      |    22
 Trans Fat / Initial Inspection                    |    18
 Smoke-Free Air Act / Re-inspection                |     7
 Trans Fat / Re-inspection                         |     3
PostgreSQL Veritabanlarında Veri Temizleme

Eksik veriyi düzeltme

  • En iyi seçenek: eksik değerleri bulup eklemek

    • Mümkün olmayabilir
    • Değerli olmayabilir
  • Bir değer atamak (ortalama, medyan vb.)

  • Kayıtları hariç tutmak

PostgreSQL Veritabanlarında Veri Temizleme

COALESCE() ile eksikleri değiştirme

COALESCE(arg1, [arg2, ...])

SELECT
  name,
  COALESCE(score, -1),
  inspection_type
FROM
  restaurant_inspection;
PostgreSQL Veritabanlarında Veri Temizleme

COALESCE() ile eksikleri değiştirme

 ... |       name       | score |               inspection_type                | ... 
 ----+------------------+-------+----------------------------------------------+-----
 ... | ...              | ...   | ...                                          | ...
 ... | SCHNIPPERS       | 27    | Cycle Inspection / Initial Inspection        | ...
 ... | ATOMIC WINGS     | -1    | Administrative Miscellaneous / Re-inspection | ...
 ... | WING LING        | 44    | Cycle Inspection / Initial Inspection        | ...
 ... | JUAN VALDEZ CAFE | 24    | Cycle Inspection / Initial Inspection        | ...
 ... | FULTON GRAND     | 22    | Cycle Inspection / Initial Inspection        | ...
 ... | ...              | ...   | ...                                          | ...
PostgreSQL Veritabanlarında Veri Temizleme

Hadi pratik yapalım!

PostgreSQL Veritabanlarında Veri Temizleme

Preparing Video For Download...