- Veri temizleme neden analizin en büyük bölümüdür?
- İlk adım: veri kalitesini tanılamak
- Eksik veri yönetimi ve atama stratejileri
- Aykırı değer tespiti ve giderme
- Metin ve kategorik verinin temizliği
- Dönüşüm, yapılandırma ve tekrarlanabilir akış
- Öğrenme yolu ve sık hatalar
- Mindset programlarında veri temizleme
- Sık sorulan sorular
Python ile Veri Temizleme: Eksik ve Hatalı Veriyle Çalışma Yöntemi
Python ile veri temizleme adımları: veri kalitesi tanılama, eksik veri, aykırı değer, metin ve kategorik temizlik, dönüşüm ve tekrarlanabilir akış.
Veri temizleme neden analizin en büyük bölümüdür?
Analiz ya da model, girdiği veri kadar güvenilirdir. Ham veride eksik hücreler, aynı kaydın mükerrer girişleri, farklı biçimlerde yazılmış tarihler, yazım farkları ve imkansız değerler bulunması olağandır. Temizlik yapılmadan çalıştırılan bir rapor, kimsenin fark etmediği bir yanlış sonuç üretebilir.
Python'da bu iş genellikle pandas ile yapılır. Temizliğin amacı veriyi güzelleştirmek değil, analiz sorusuna cevap verecek kadar güvenilir ve tutarlı hâle getirmektir. Her düzeltmenin gerekçesi ve etkisi kayıt altında tutulmalıdır; aksi hâlde sonuçlar tekrar edilemez.
İlk adım: veri kalitesini tanılamak
Temizliğe başlamadan önce veriyi tanımak gerekir. Satır ve sütun sayısına, her sütunun veri türüne, eksik hücre oranına ve benzersiz değer sayısına bakılır. Sayısal sütunlar için özet istatistikler, kategorik sütunlar için değer sayımları sorunlu yerleri hızla gösterir.
Tanılama sırasında şu soruların yanıtı aranır: • Her sütun beklenen türde mi, yoksa sayı metin olarak mı kaydedilmiş • Eksik değerler rastgele mi, belli bir kaynakta mı toplanıyor • Mükerrer kayıt var mı ve neye göre mükerrer sayılıyor • Mantıksız değerler (negatif yaş, gelecekteki doğum tarihi) var mı
Bu aşamada veriyi değiştirmeyin; yalnızca bulguları not edin.
Örneğin kurgusal bir müşteri tablosunda tanılama şunu gösterebilir: telefon numaraları bazen boşluklu, bazen tire ile yazılmış; şehir sütununda aynı şehrin farklı yazımları var; kayıt tarihi sütunu bir kısım satırda gün-ay-yıl, bir kısmında ay-gün-yıl sırasıyla girilmiş. Bu üç sorun farklı çözümler ister: biçim standardizasyonu, eşleme tablosu ve tarih ayrıştırma kuralı. Önce bulguları listelemek, sonra her sorunu ayrı ayrı çözmek, hangi düzeltmenin hangi satırı etkilediğini izlemeyi kolaylaştırır.
Eksik veri yönetimi ve atama stratejileri
Eksik veriyle başa çıkmanın üç temel yolu vardır: silmek, doldurmak ya da olduğu gibi bırakıp işaretlemek. Satırın büyük bölümü boşsa ya da eksik oran çok küçükse silmek makul olabilir; ancak silme, örneklemi çarpıtabilir.
Doldurma (atama) yöntemleri arasında sayısal sütunlar için ortalama ya da medyan, kategorik sütunlar için en sık değer, zaman serilerinde bir önceki ya da sonraki değer ve ilişkili sütunlardan tahmin yer alır. Medyan, aşırı uç değerlerin etkisini azalttığı için ortalamadan sıklıkla daha güvenlidir. Eksikliğin kendisi bilgi taşıyorsa (müşteri bu alanı bilerek boş bırakmıştır) ayrı bir gösterge sütunu eklemek faydalıdır.
Aykırı değer tespiti ve giderme
Aykırı değer, diğer gözlemlerden belirgin biçimde uzaktaki değerdir. Her aykırı değer hata değildir: büyük bir kurumsal sipariş gerçek ve önemli olabilir. Bu nedenle önce nedenine bakılır.
Tespit için çeyrekler arası aralık yöntemi (kutu grafiği kuralı), standart sapma tabanlı z-skoru ve görsel inceleme kullanılır. Karar üç yönde verilebilir: hata ise düzeltmek ya da silmek, gerçek ama uç ise tutmak, modelde etkisi büyükse sınırlandırmak (belli bir eşiğe çekmek) ya da dönüşüm uygulamak. Her seçim analizin amacına bağlıdır ve belgelenmelidir.
Metin ve kategorik verinin temizliği
Metin alanlarında boşluk fazlalığı, büyük-küçük harf farkı, noktalama ve yazım varyasyonları aynı şeyi farklı gösterir. İstanbul, istanbul ve Istanbul üç ayrı kategori gibi sayılabilir. Çözüm; boşlukları kırpmak, harf biçimini standartlaştırmak ve eşleme tablosuyla varyasyonları tek değere toplamaktır. Türkçe karakterlerde büyük-küçük harf dönüşümünün (i ve ı farkı) doğru yapıldığını kontrol edin.
Kategorik sütunlarda nadir kategorileri birleştirmek, sıralı kategorileri doğru sırayla kodlamak ve modele girecek sütunları sayısallaştırmak (kodlama) bu aşamaya girer.
Benzer şekilde, aynı kişiye ait mükerrer kayıtlar yalnız tam eşleşmeyle bulunmaz: ad soyadın yazım farkları, farklı e-posta biçimleri ve aynı telefonun ikinci girişi de mükerrer işaretidir. Hangi kaydın korunacağı (en yeni, en eksiksiz ya da güvenilir kaynaktan gelen) önceden kurala bağlanmalıdır.
Dönüşüm, yapılandırma ve tekrarlanabilir akış
Temizlenen veri, analiz için uygun yapıya getirilir: tarih sütunları zaman türüne çevrilir, geniş tablolar uzun biçime ya da tersine döndürülür, birden fazla kaynak ortak anahtarla birleştirilir, ölçekleme ve normalleştirme gerekiyorsa uygulanır.
Asıl fark, tüm bu adımların tek bir betik ya da fonksiyonlar zincirinde yazılmasıyla ortaya çıkar. Elle yapılan tek seferlik düzeltmeler tekrar edilemez. Her adımı bir fonksiyona koyup sırayla çalıştıran bir boru hattı, yeni veri geldiğinde aynı temizliği yeniden uygular. Adım öncesi ve sonrası satır sayısı ile eksik oranını kaydetmek, hatayı erken yakalar.
Öğrenme yolu ve sık hatalar
Önce pandas ile veri okuma, seçme ve filtreleme, ardından eksik değer ve mükerrer kayıt işlemleri, sonra metin işleme ve veri türü dönüşümleri çalışılır. En sonda boru hattı kurma ve belgeleme gelir.
Sık hatalar: tanılama yapmadan doldurmaya girişmek, aykırı değerleri otomatik silmek, orijinal veriyi üzerine yazmak, test verisine eğitim verisinden öğrenilmiş istatistiği uygulamamak. Orijinal ham veriyi daima ayrı tutun ve temizlenmiş sürümü yeni bir dosya olarak üretin.
Temizlik kurallarını bir sözlük ya da yapılandırma dosyasında tutmak (hangi sütun hangi türe çevrilecek, hangi değerler eksik sayılacak) betiği okunur kılar ve kural değiştiğinde kodu baştan yazmayı gerektirmez.
Mindset programlarında veri temizleme
Mindset'in Python ile Veri Temizleme programı şu modüllerle ilerler: Veri Kalitesi Tanılama ve Keşif, Eksik Veri Yönetimi ve Atama Stratejileri, Aykırı Değer Tespiti ve Giderme, Metin ve Kategorik Veri Temizleme, Veri Dönüşümü ve Yapılandırma, Tekrarlanabilir Veri Temizleme Boru Hatları.
İlgili Mindset programı
Python ile Veri Temizleme
Sık sorulan sorular
Eksik veriyi silmek mi doldurmak mı daha doğru?
Duruma bağlıdır. Eksik oran çok düşükse ve eksiklik rastgeleyse silmek sorun çıkarmayabilir. Eksiklik belli gruplarda toplanıyorsa silmek örneklemi çarpıtır; bu durumda uygun bir atama yöntemi seçmek ve eksikliği işaretleyen ayrı bir sütun tutmak daha güvenlidir. Karar verirken eksikliğin nedenini, hangi sütunlarda toplandığını ve analiz sorusu için önemini birlikte düşünmek gerekir.
Aykırı değerler her zaman silinmeli mi?
Hayır. Önce nedeni araştırılır. Veri giriş hatasıysa düzeltilir ya da silinir; gerçek bir uç durumsa tutulur, çünkü önemli bir olguyu temsil edebilir. Modelleme için etkisi fazlaysa sınırlandırma ya da dönüşüm uygulanabilir. Her uç değer için not düşmek, analizin sonradan neden o şekilde yapıldığını açıklayabilmek için önemlidir.
Veri temizleme için hangi Python kütüphaneleri kullanılır?
Tablo verisi için pandas ve sayısal işlemler için NumPy temel araçlardır. Metin işlemede düzenli ifadeler, görselleştirme için matplotlib ya da seaborn, model öncesi dönüşümlerde scikit-learn yardımcı olur. Büyük veri ile çalışırken bu araçlara ek olarak veritabanı sorguları da temizlik sürecinin bir parçası olabilir.
Temizlik işlemi nasıl tekrarlanabilir hâle getirilir?
Tüm adımlar elle değil kodla yazılır, her adım ayrı bir fonksiyona konur ve sıralı bir akışta çalıştırılır. Ham veri değiştirilmez, çıktı yeni dosyaya yazılır. Her adım öncesi ve sonrası satır sayısı ile eksik oranı kaydedilirse hatalar erken fark edilir. Böylece aynı temizlik başka bir veri parçasına da uygulanabilir ve ekip arkadaşlarınız adımları kolayca inceleyebilir.
İlgili rehberler
Kategori: Veri Analitiği ve İş Zekası, Veri Mühendisliği ve MLOps