Veri Analizi Araç Kiti: Proje Şablonu, Temizleme Kontrol Listesi ve Hazır Kod Kalıpları

Ders 10/11 · yaklaşık 3 dk okuma

Bu ders bir anlatım değil, masanıza koyacağınız bir araç kiti. Aşağıdaki şablonları kopyalayın, kendi işinize göre uyarlayın ve bir sonraki veri setinizde ilk gün kullanın.

1. Proje klasör yapısı ve not defteri iskeleti

Her analiz için aynı yapıyı kurun. Böylece aylar sonra dosyayı açan siz ya da işi devralan meslektaşınız nereye bakacağını bilir.

  • veri/ham: Gelen dosyalar olduğu gibi durur, asla düzenlenmez.
  • veri/temiz: Temizlenmiş çıktılar burada saklanır.
  • notebooklar: Numaralı not defterleri (01_ilk_bakis, 02_temizleme, 03_analiz).
  • raporlar: Yönetime giden özet dosyaları.
  • README: Projenin amacı, veri kaynağı ve veriyi kimden aldığınız.

Not defteri başlık iskeleti

  • Amaç ve soru: Hangi karar için bakıyoruz?
  • Veri yükleme: Dosya adı, alınma tarihi, kaynak kişi veya birim.
  • İlk bakış: Kontrol listesi çıktıları.
  • Temizleme: Her adımın yanında kısa açıklama.
  • Analiz: Filtreler, gruplamalar, grafikler.
  • Bulgular ve sonraki adım: Üç cümlelik özet ve öneri.

2. İlk bakış kontrol listesi

Veri setini ilk açtığınızda, analize geçmeden önce sırayla şu yedi kontrolü yapın.

KontrolKod kalıbıNeye bakılır?
Boyutdf.shapeSatır ve sütun sayısı beklentiyle uyuşuyor mu?
Sütun tipleridf.info()Sayı olması gereken sütun metin görünüyor mu?
Eksik oranıdf.isna().mean().sort_values(ascending=False)Hangi sütunlar ağırlıklı olarak boş?
Mükerrer kayıtdf.duplicated().sum()Aynı kayıt birden fazla girilmiş mi?
Aykırı değerdf.describe()En küçük ve en büyük değerler mantıklı mı? Negatif tutar var mı?
Tarih tutarlılığıdf['tarih'].min(), df['tarih'].max()Gelecek tarih, çok eski tarih, gün/ay karışıklığı var mı?
Metin tutarlılığıdf['sehir'].value_counts()İstanbul, istanbul ve İSTANBUL ayrı sayılmış mı? Başta veya sonda boşluk var mı?

3. Hazır Pandas kod kalıpları

AmaçKalıp
Sütun adı standartlaştırmadf.columns = df.columns.str.strip().str.lower().str.replace(' ', '_')
Tarih dönüştürmedf['tarih'] = pd.to_datetime(df['tarih'], errors='coerce', dayfirst=True)
Sayı dönüştürmedf['tutar'] = pd.to_numeric(df['tutar'], errors='coerce')
Eksik değer işaretlemedf = df.replace({'-': np.nan, 'yok': np.nan, 'N/A': np.nan})
Metin boşluklarını temizlemedf['sehir'] = df['sehir'].str.strip()
Koşullu filtrelemedf[(df['bolge'] == 'Marmara') & (df['tutar'] > 1000)]
Groupby özet tablosudf.groupby('bolge').agg(toplam=('tutar','sum'), adet=('tutar','count'), ortalama=('tutar','mean')).reset_index()

Uyarı: Türkçe karakterlerde büyük/küçük harf çevirirken i, İ, ı, I harfleri beklenmedik sonuç verebilir. Çevirdikten sonra mutlaka value_counts ile kontrol edin.

4. Veri sözlüğü ve temizleme günlüğü

Veri sözlüğü formatı

Sütun adıAnlamıTipOlası değerler / birimKaynak
siparis_tarihiSiparişin alındığı günTarihGG.AA.YYYYSatış sistemi
tutarKDV dahil sipariş bedeliSayıTLMuhasebe
bolgeMüşterinin bölgesiMetinMarmara, Ege, İç Anadolu vb.Müşteri kaydı

Temizleme günlüğü formatı

NoSütunSorunYapılan işlemEtkilenen satırGerekçe
1tutarMetin olarak okunmuş, '-' içeriyorEksik olarak işaretlendi, sayıya çevrildiSatır sayısı yazılırHesaplama yapılabilmesi için
2sehirAynı şehir farklı yazılmışTek yazım biçimine eşlendiSatır sayısı yazılırGruplamada bölünmeyi önlemek
3tüm tabloMükerrer kayıtİlk kayıt tutuldu, diğerleri silindiSatır sayısı yazılırÇift sayımı önlemek

Günlük, biri “bu rakam neden geçen haftakinden farklı?” diye sorduğunda en güçlü savunmanızdır.

5. Yönetime aktarım: cümle kalıpları ve kısa rapor şablonu

Yönetim kod görmek istemez, karar vermek ister. Bulguyu üç parçada anlatın: ne gördük, ne anlama geliyor, ne yapmalıyız.

  • “Analizde [X] bulgusuna ulaştık; bu, [karar/süreç] açısından [şu anlama] geliyor.”
  • “Verinin [bir kısmı] eksikti; bu nedenle sonucu temkinli okumanızı öneririm.”
  • “[A] ile [B] arasında belirgin bir fark var, ancak nedenini bu veriyle söyleyemiyoruz. Bunun için [ek veri] gerekiyor.”
  • “Önerim, önce [küçük bir pilot uygulamayla] denemek ve sonucu birlikte değerlendirmek.”
  • “Bu rakamı hangi filtrelerle hesapladığımı temizleme günlüğünde görebilirsiniz.”

Tek sayfalık rapor şablonu

Bölümİçerik
AmaçHangi soruya cevap arandı? (1-2 cümle)
Veri kaynağıDosya, dönem, kimden alındı
Yapılan temizlikGünlüğün üç satırlık özeti
Ana bulgularEn fazla üç madde, her biri tek cümle
SınırlılıklarEksik veri, kapsam dışı kalanlar, emin olunmayan noktalar
Öneri ve sonraki adımKim, ne zaman, ne yapacak?

Bu dersi kayıt olmadan izleyebilirsin. İlerlemeni kaydetmek, sertifika almak ve puan tablosuna girmek için ücretsiz üye ol: Kayıt Ol

İpucu: ← ve → tuşlarıyla dersler arasında geçebilirsin.