Ana içeriğe geç
Kesit Power BI
Temel · Veri Hazırlama

Power Query ile veri temizleme

Uygulanan adımlar, veri türleri, kırpma, bölme, yinelenenleri kaldırma ve sütun kalitesi.

Uygulamada aç, 7 alıştırmayı çözÜcretsiz, hesap gerekmez, kurulum yok.

Bu sayfa dersin okuma sürümüdür. Metin bir kutuyu çalıştırmanı ya da adıma geçmeni söylüyorsa dersi uygulamada aç.

Power Query nedir?

Power Query, veriyi modele yüklemeden önce temizlediğin ETL (çıkar, dönüştür, yükle) aracıdır. Giriş → Verileri dönüştür ile açılır. Yaptığın her tıklama sağdaki Uygulanan Adımlar listesine bir satır olarak eklenir ve arka planda M dilinde kod üretir. Yenilemede bu adımlar sırayla yeniden çalışır; yani temizliği bir kez tasarlarsın.

Kirli veri örneği

Anadolu Market'in web formundan gelen kayıt verisi şöyle görünüyor (Kesit SQL’deki raw_signups tablosu):

idfull_nameemailcitysignup_date
3" Elif Kaya "ELIF.KAYA@GMAIL.COMistanbul2024-03-05
3" Elif Kaya "elif.kaya@gmail.comistanbul2024-03-05
7MEHMET DEMİRmehmet.demir@gmail.com" Ankara"14.07.2024

Temizlik adımları

  1. Veri türlerini belirle: Sütun başlığındaki simgeye tıkla. Tarih, Tam Sayı, Ondalık Sayı, Metin. Yanlış tür, ileride en çok hata çıkaran şeydir.
  2. Kırp ve temizle: Dönüştür → Biçim → Kırp (baştaki ve sondaki boşlukları siler) ve Temizle (yazdırılamayan karakterleri siler).
  3. Büyük/küçük harf: Biçim → Her Sözcüğün İlk Harfi Büyük (ad soyad için), küçük harf (e-posta için).
  4. Değerleri değiştir: “istanbul” → “İstanbul”. Türkçe büyük İ/ı harflerine dikkat.
  5. Yinelenenleri kaldır: Anahtar sütunu (id ya da e-posta) seçip Giriş → Satırları Kaldır → Yinelenenleri Kaldır.
  6. Karışık tarih biçimi: Sütun türünü Yerel ayarı kullanarak Tarih'e çevir (Türkçe, gg.aa.yyyy) ya da önce metni ayrıştır.
  7. Sütunu böl: “Ad Soyad” sütununu Sınırlayıcıya göre böl → en sağdaki boşluk: Ad ve Soyad.

Arka plandaki M kodu

let
    Kaynak = Csv.Document(File.Contents("kayitlar.csv"), [Delimiter=",", Encoding=65001]),
    Basliklar = Table.PromoteHeaders(Kaynak),
    Kirpilmis = Table.TransformColumns(Basliklar, {{"full_name", Text.Trim}, {"city", Text.Trim}}),
    BuyukHarf = Table.TransformColumns(Kirpilmis, {{"full_name", Text.Proper}, {"email", Text.Lower}}),
    Tekil = Table.Distinct(BuyukHarf, {"email"}),
    Turler = Table.TransformColumnTypes(Tekil, {{"id", Int64.Type}, {"signup_date", type date}}, "tr-TR")
in
    Turler

Her satır bir adımdır; bir adım bir önceki adımın adını girdi olarak alır. let … in bloğunun sonundaki ad, sorgunun çıktısıdır.

Sütun kalitesiGörünüm sekmesinde Sütun kalitesi, Sütun dağılımı ve Sütun profilini aç. Her sütunun yüzde kaçının geçerli, hatalı ya da boş olduğunu, kaç farklı değeri olduğunu anında görürsün. Varsayılan olarak ilk 1000 satıra bakar; alt çubuktan “Tüm veri kümesine göre sütun profili oluşturma”yı seçebilirsin.
Erken temizle, geç hesaplaSatır düzeyinde düzeltmeleri (boşluk, tür, harf) Power Query'de yap. Toplama ve oran gibi hesapları DAX ölçülerine bırak.
Alıştırmalara geç (7)