Ana içeriğe atla

Veri Temizleme: Temelleri Anlamak

Veri temizleme, veri biliminin en temel yapı taşlarından biridir. Veri temizlemenin önemini ve Python kullanarak sürecin nasıl yürütüleceğini öğrenin.
Güncel 3 Eki 2026  · 12 dk. oku

Yapay Zeka ile Keşfedin

ChatGPTClaudePerplexity

Analitiklerimiz veya kestirim algoritmalarımız ne kadar gelişmiş olursa olsun, çıktı kalitesi girdideki veriye bağlıdır. Başka bir deyişle, "çöp girerse çöp çıkar".

Tüm bu süreçlerin temelinde veri olduğundan, verinin düzgünce rafine edildiğinden emin olmak için yeterli zaman ayırmak önemlidir.

Veri temizleme, veri bilimi yaşam döngüsünde temel bir süreçtir ve içgörü elde etmeye ve güvenilir yanıtlar üretmeye çalışırken rolü abartılamaz. Gerçek dünyada veri çoğu zaman kirli olur ve veri temizlemeden tamamen kaçınmak mümkün değildir.

Bu yazıda, eksik değerler, yinelenenler ve aykırı değerlerle nasıl başa çıkılacağı gibi bazı önemli kavramları ele alacağız. Daha kapsamlı bir yönerge seti için mutlaka Python ile Veri Temizleme veya R ile Veri Temizleme kursumuzu alın.

Kirli Veriye Ne Sebep Olur?

Basitçe ifade etmek gerekirse, veri temizleme (veya arıtma), veri analizine hazırlık için gereken bir süreçtir. Bu, yinelenen ve eksik kayıtları bulup kaldırmayı ve hatalı kayıtları düzeltmek için veriyi değiştirmeyi içerebilir.

Kirli veri uzun zamandır bir sorun olsa da, son on yılda veri üretiminde üstel bir artış gördük. Yalnızca 2020’de dünya 64 zettabayttan fazla veri üretti; bu, 6,4 trilyon gigabayta eşdeğer. Tüm bu verinin %2’sinden azı saklansa da bu durum, zaten var olan "kirli veri" sorununu şüphesiz daha da büyütüyor. Veri temizleme düzgünce yapılmadan önce, verinin ilk etapta nasıl kirlendiğini anlamak önemlidir. Bu, aşağıdaki yaygın kaynaklardan kaynaklanabilir:

  • Veri girişi, kaydı veya kodlama sırasında insan hatası
  • Nesnelerin internetinde (IoT) olduğu gibi, arızalı bir algılayıcı cihaz
  • Donanım veya yazılım hasarından kaynaklanan bozulma

Temizlemeyi hedeflediğimiz kirli verinin kök nedeninin farkında olmak, veri setimizle ilişkili farklı sorunları sınıflandırmaya imkân veren veri kalitesi ölçütlerini dayatmak için iyi bir temel oluşturur.

Veri Temizleme Neden Bu Kadar Önemli?

Veri temizleme süreci, bir kuruluşun verilerini temizlemek için bir şablon oluşturmaya yardımcı olduğu için önemlidir. Daha önce belirtildiği gibi, her veri analitiği veya veri bilimi süreci çöp girerse çöp çıkar ilkesine tabidir. İhmal edildiğinde, zaman, para ve diğer kaynaklar açısından maliyetli ve hatalı analitik sonuçlar doğurur.

Veri Kalitesi Nedir?

Veri kalitesi, verimizin, hizmet etmesi gereken amaca ne kadar uygun olduğunu nitel ve/veya nicel olarak ölçer. Bu ölçüler, sunulan verinin istenen amaçlarımıza ne kadar uygun olduğunu değerlendirmek için kullanabileceğimiz pratik şablonlardır. Bu veri kalite ölçülerini, verimizi veri bilimi süreçlerine uygun saymak için geçmesi gereken metrik testler olarak düşünün.

Veri kalitesi için ölçütler

  1. Doğruluk: Doğruluğu doğrulamak için sorulabilecek basit bir soru şudur: Veride yer alan bilgi her ayrıntısıyla doğru şekilde sağlanmış mı? Veriyle, gerçek dünyadaki örüntüleri yaklaşık olarak modellemeye çalışırız; doğruluk, bu yaklaşımların ne kadar gerçeğe uygun olduğunu tanımlar.
  2. İlgililik: Bu bilgi, ulaşmak istediğimiz nihai hedefe ne kadar katkı sağlıyor?
  3. Tutarlılık: Bu verinin kaynağı doğrulanmış mı ve içindeki bilgiye güvenilebilir mi? Örneğin, yaşı 15 olan bir müşterinin medeni durumunun evli olarak belirtilmesi gibi.
  4. Tamlık: Sağlanan veri, hedeflenen amaç için yeterince kapsamlı mı? Bu, eksik veriyle ilişkili yaygın bir sorundur ve bunu çözmenin bir yolu veri kaynağını araştırmaktır.
  5. Birörneklik: Diyelim ki bir satış sütunumuz var ancak tüm işlemler aynı para birimiyle yapılmamış. Tüm satış değerlerini tek bir para birimine çevirmek zorunlu hale gelir ve birörneklik tam olarak bununla ilgilidir; tüm sistemlerde veri ölçülerinin aynı ölçü birimleriyle belirtilmesini sağlamak.

Veri temizleme ve veri dönüştürme

Veri temizleme ile veri dönüştürme arasında ayrım yapmak önemlidir. Veri dönüştürme, bize sağlanan veriden daha fazla içgörü çıkarmaya yardımcı olabilecek süreçler bütünüdür. Bu süreçler, ham veri biçimini genellikle başka bir biçime dönüştürür; birkaç örnek şunlardır:

  • Ön kodlama (Encoding): Kategorik değerleri, sonrasında makine öğrenimi hesaplamalarında kullanılabilecek ikili değerlere dönüştürme sürecidir. Şekil, cinsiyet sütununun kodlanmış hâlinin nasıl görüneceğini gösterir. Hâlâ aynı bilgiyi taşısa da farklı bir biçime dönüştürülmüştür.

veri kodlaması örneği

  • Veri bölütleme (binning): Bucketing olarak da anılır; bu süreç, küçük gözlemlerin etkisini/boyutunu azaltmaya yardımcı olur. Sürekli değerlerin bölütlere (veya kategorilere) gruplanmasını içerir.

Veri bölütleme örneği

  • Ölçekleme: Farklı ölçeklerdeki değerleri sabit bir aralığa standartlaştırmaya yardımcı olan, makine öğreniminde yaygın bir tekniktir.

veri ölçekleme örneği

Çoğu veri dönüştürme sürecinde, verinin orijinal gösteriminin değiştirildiğine dikkat edin. Aynı veri olsa da, onu makine öğrenimi veya başka bir amaç için kullanılabilir bir biçime dönüştürmek üzere belirli teknikler uygulanmıştır.

Veri Temizleme Nasıl Yapılır

Yüksek kaliteli veriye ulaşmak için bir dizi yönergeye sahip olmak önemlidir. Bu yönergelere veri temizleme iş akışı denebilir. Temizleme için gereken tüm süreçleri dikkate almamıza yardımcı olurlar. Bu iş akışına dahil süreçler şunlardır:

  • Veri keşfi
  • Veri temizleme
  • Veri doğrulama
  • Veri temizleme raporlaması Bazı süreçler Python ile de gösterilecektir

Veri keşfi

Veri keşfi, veride yer alan değişkenleri derinlemesine inceleyerek veriyi anlamakla ilgilidir. Verideki temel sorunları düzgünce ortaya çıkarmak için çeşitli görsel ve toplulaştırma teknikleri gerektirir. Sağlıklı bir keşif için dikkat edilmesi gereken bazı noktalar şunlardır:

Veri Bağlamı

Herhangi bir veriyi temizlemeden önce, verinin bağlamını anlamalıyız. Veri bağlamı, veride yer alan tüm varlıkların kaynağıdır. Verinin nasıl toplandığını çevreleyen koşullar bütününü yakalar; verinin nasıl toplandığı, nasıl ve ne amaçla kullanılabileceğine dair içgörüler sunar.

Bu, temizleme (ve analiz) sırasında neyin kabul edilebilir olduğuna dair yol gösterici bir ışık görevi görür; böylece bu veriden doğru içgörüleri çıkarabiliriz. Verinin nasıl toplandığını açıkça anladıktan sonra, söz konusu veriyi keşfetmemiz gerekir.

Keşifsel Veri Analizi

Keşifsel veri analizi, özet istatistikler ve grafiksel gösterimler yardımıyla örüntüleri keşfetmek, aykırı durumları tespit etmek, hipotezleri test etmek ve varsayımları kontrol etmek amacıyla veri üzerinde ilk incelemeleri yapmaya yönelik kritik bir süreçtir. Keşif olmadan keşif yoktur. Verimizi keşfetmezsek, veri içindeki çeşitli sorunları ortaya çıkarmak zordur.

Örneğin, bize burada sağlanan bir veri seti var. Maliye Departmanı’nın Rolling Sales dosyaları, New York City’de son on iki aylık dönemde satılan 1, 2 ve 4. vergi sınıfındaki mülkleri listeler. Sağlanan Bronx verisini indirecek ve okuyacağız.

#pandas
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

#read excel file
df = pd.read_excel("rollingsales_bronx.xls")

#preview data
df.head()

Bronx rolling sales data example

Bu veri çerçevesindeki dikkat çekici sorunlar şunlardır:

  1. isimsiz sütunlar
  2. ilk üç satırda eksik değerler

Ancak, veriyi Excel’de keşfetmek, çalışma kitabındaki gerçek tablonun 4. satıra kadar başlamadığını gösteriyor. Bu nedenle, veriyi yeniden okuyup birkaç parametre ayarlamak, hangi satırların atlanacağını ve hangi satırın başlık yapılacağını belirtmemize olanak sağlar:

#we read the data in again but skill 3 rows this time
df = pd.read_excel("rollingsales_bronx.xls", skiprows = 4, header = [0])

df.head()

Bronx rolling sales data example cleaned up

Verinin artık nasıl görüntülendiğinde belirgin bir değişim var. İlk içe aktarmayı da temizleyebilirdik; ancak veri keşfi, Python’daki veri içe aktarma işlevimize yalnızca birkaç küçük düzenleme ile bize önemli ölçüde zaman kazandırdı.

Veri keşfi, bir soruşturmacı olarak olay yerine girmek gibidir; neyin yerinden oynadığını pasifçe gözlemleriz. Veri temizleme ise suçun kendisini çözmeye yönelik aktif süreçtir.

Veri temizleme

Veri keşfi genellikle veri temizleme süreçleriyle el ele yürür. Verimizdeki sorunları görsel, toplulaştırma veya istatistiksel yollarla ortaya çıkardıktan sonra bunları düzeltmemiz gerekir. Bu aşamada veriler kaldırılabilir, düzeltilebilir veya atama (imputation) yoluyla tamamlanabilir.

Tutarsız Kayıtlar

Tipik bir tutarsız kayıt örneği, bireylerin cinsiyetlerini girmelerinin istendiği bir formdur. Aynı şeyi temsil eden farklı biçimler görebiliriz; örneğin ‘M’, ‘m’, ‘Male’ veya ‘MALE’. Benzer şekilde bu ay ‘aples’, ‘apples’ ya da ‘APPLES’ mı sattık? Bunları tespit etmenin en iyi yolu bir frekans grafiği veya sütundaki tüm değerlerin ayrı bir listesini oluşturmaktır. Tutarsız kayıtlara yönelik bazı işlemler şunlarla sınırlı olmamak üzere şunları içerir:

  • Metinleri küçük harfe veya uygun biçimlendirmeye dönüştürme
  • Boşlukları kaldırma
  • Sütun adlarını yeniden adlandırma

Python örneği: Veri keşfi sırasında içe aktardığımız veri setini kullanarak, sütun adlarının tutarsız şekilde yazıldığına dikkat edin:

Python example dataframe

Bu büyük bir mesele gibi görünmese de sütun adlarının tutarlı biçimde erişilebilir olması önemlidir. Örneğin, EASE-MENT her kelime arasında kısa çizgi (-) barındırırken diğerlerinde yalnızca boşluk var.

Veri temizlemenin bir parçası da tutarlılığı sağlamaktır. Bunu iki adımda düzeltmeyi deneyelim:

  1. Kelimeler arasındaki boşlukları alt çizgiyle değiştirin
  2. Uygun biçimlendirmeye (title case) dönüştürün
# Extract columns
cols = df.columns

# Create empty list for new column names
new_cols = []

# Iterate over each column name to fix issues
for column in cols:
    # Convert column name to title case
    proper_cols = column.title()
    # Replace spaces and hyphens with underscores
    proper_cols_hyphen = proper_cols.replace(" ", "_")
    clean_col = proper_cols_hyphen.replace("-", "_")
    # Append the cleaned column name to the list
    new_cols.append(clean_col)

# Display the transformed column names
new_cols

# Replace existing columns in the dataframe with the cleaned list
df.columns = new_cols

# Preview the updated dataframe
df.head()

Python example 2

Veri türleri ve tür dönüştürme

Veri türü, verinin nasıl temsil edildiğidir ve derleyiciye verinin nasıl kullanılacağını söyler. Verinin nasıl temsil edildiği, o veriyle hangi işlemlerin mümkün olduğunu belirler. Bronx verisindeki veri çerçevemizin her sütunundaki veri türlerini ön izleyelim.

#data types
df.dtypes

Data Types and Type Conversion

Not: Artık nokta yöntemiyle (df.Year_Built) sütun adlarını kolayca seçebildiğimize dikkat edin.

Tüm veri türleri yerli yerinde görünüyor; ancak Year_Built sütunu kategorik olmalı. Büyük bir öneme sahip olmasa da toplulaştırma yaptığımızda Year_Built muhtemelen dahil edilecektir.

#Fix Year_Built column
df.Year_Built = df.Year_Built.astype("str")

#Check
df.dtypes

Data Types and Type Conversion 2

Eksik veriler

Bazen eksik verileri olan gözlemler (satırlar) bulunur ve bazen de tamamen eksik değerlere sahip tüm sütunlar olabilir. Peki böyle durumlarda ne yaparız? Yok mu sayarız? Bu, yağmur yağdığında su sızdıran bir çatıya benzetilebilir.

Eksik değerler, farklı araçlarda farklı şekillerde temsil edilir. Bu temsiller NULL, boş dizgiler, NaN, NA, #NA vb. olabilir. Eksik verilerle başa çıkmada veri bağlamı önemlidir ve verinin neden eksik olduğunu anlamak kritik önemdedir. Eksik verilerle başa çıkmanın iki temel yöntemi vardır:

  • Veriyi kaldırma
  • Veriye atama (imputation) yapma

Hangi yöntemin kullanılacağına karar vermeden önce, sütunlar genelinde eksik değer örüntülerini incelemek gerekir. Bunları değerlendirmek için görsel ve betimleyici teknikler kullanacağız.

#extract the column names
cols = df.columns

#plot a heatmap of missing values with seaborn
plt.figure(figsize = (10,5))
sns.heatmap(df[cols].isnull())

Missing Data

Grafik görsel olarak şunları gösteriyor:

  • Ease_ment sütunundaki tüm değerler ve Apartment_Number sütunundaki değerlerin neredeyse tamamı eksik
  • Units ve Square_Feet ile ilgili sütunlarda eksik değerler dağılmış durumda Çok daha büyük veri setleri için bu grafik ideal olmayabilir. Bunu ele almanın bir başka yolu, bu eksik değerlerin fiili veri boyutuna göre ne kadar anlamlı olduğunu incelemektir.
    #Get the percentage of missing values in each column
    missing_pct = round(df.isnull().sum()/len(df) * 100, 1)
    print(missing_pct)
    

Missing Data 2

Ease_Ment ve Apartment_Number sütunlarını düşürecek ve ardından kalan sütunlardaki eksik değerleri değiştireceğiz.

#columns with more than 30% missing values
drop_cols = missing_pct[missing_pct > 30].index
#We can drop these columns with greater than 30 percent missing values
df_new = df.drop(columns = drop_cols)

#Extract columns with mising values between 1 and 30%
replace_cols = missing_pct[(missing_pct > 0) & (missing_pct < 30)].index

#Iterate to replace missing values
for col in replace_cols:
    #if column is year built we replace with median otherwise the mean
    if col == "Year_Built":
        df_new.fillna(df_new[col].median(), inplace = True)
    else:
        mean_value = df_new[col].mean()
        df_new.fillna(mean_value, inplace = True)
df_new.isnull().sum() #preview for missing values

Missing Data 3

Elbette, eksik değerlerle başa çıkmaya dair daha fazlası var; bu konu, Datacamp’in Python’da Eksik Verilerle Başa Çıkma kursunda ele alınır. Farklı veri setleri, türler ve yapılar farklı ihtiyaçlara sahiptir; dolayısıyla eksik verilerle uğraşmak tüm veri türleri için tek ve net bir süreç değildir. Aşağıdaki görsel, silme veya atama tekniklerinden hangisinin uygulanacağına dair farklı senaryoları göstermektedir.

Missing Data 4

Yinelenenler

Her gözlem için tek bir doğru kaynak (single source of truth) olduğundan emin olmalıyız. Kullanıcının formu iki kez göndermesi veya veri girişi sırasında yapılan hatalar nedeniyle tek bir müşteri hakkında birden fazla gözleme sahip olduğumuz senaryolar olabilir. Nasıl ortaya çıktığından bağımsız olarak, tek ve eksiksiz bir doğru sürüm geliştirmemiz gerekir. Bu, işletmelerin şunları sağlamasına yardımcı olur:

  1. Aynı müşteriyi iki kez hedefleyerek zaman ve para israf edilmez
  2. Güvenilir ve eksiksiz bir doğru sürüm geliştirilir ve analiz sonuçlarına dayanarak güvenilir iş kararları alınabilir.

Aykırı değerler

Aykırı değerler aşırı uçtaki veri noktalarıdır. Genellikle, verideki örüntünün geri kalanıyla uyuşmayan çok düşük veya çok yüksek değerlerdir; örneğin:

  • 200 yaşında bir müşteri
  • Antarktika bölgesinde 40° Santigrat sensör okuması

Aykırı Değerleri Belirleme Aykırı değerleri, görsel veya istatistiksel tekniklerle belirlemek için farklı yöntemler vardır

  1. Veri setini sıralama: Veriyi basitçe sıralayarak, veri setinde veya ilgi duyulan değişkenlerde aykırı değerler kolayca tespit edilebilir. Ancak bu teknik büyük veri setlerinde başarısız olur ve tüm değerleri bir bakışta görmek zor olabilir.

  2. Görselleştirme: Kutu grafikleri (boxplot), histogramlar ve saçılım grafikleri gibi görsel teknikler aykırı değerleri tespit etmeyi kolaylaştırabilir.

  3. Z-skorlarını kullanma: Verinin normal dağıldığını varsayarak gözlenen bir değerin olağandışılığını nicelleştiren istatistiksel bir tekniktir. Gözlenen değerlerin ortalamanın üzerinde veya altında kaç standart sapma uzaklıkta olduğunu ifade eder.

Aykırı Değer İşleme Süreci Aykırı değer işleme, verimizde temsil edilen aykırı değerleri kaldırma veya değiştirme sürecidir:

  1. Aykırı değerleri veriden kaldırma: Bu, verinizin alt veya üst X_yüzdelik diliminde (percentile) yer alan değerlerin kaldırılmasını içerebilir. Aşağıdaki durumlarda aykırı değerler kaldırılabilir:
  2. Verinin yanlış ölçüldüğü bariz olduğunda. Daha önce belirtildiği gibi, aktif bir müşterinin 200 yaşında olması geçerli bir girdi değildir; kaldırılması gereken tipik bir aykırı değer örneğidir.
  3. Aykırı değer analiz sonuçlarınızı değiştirmiyorsa bu aykırı değeri düşebilirsiniz. Bu, veri setindeki aykırı değer sayısı toplam veriye kıyasla çok fazla olmadığında da değerlendirilebilir.

  4. Aykırı değerleri değiştirme: Bu, bu uç değerlerin ortalama, medyan veya mod değerlerle değiştirilmesini içerir. Aykırı değerlerin sayısı, gerçek veriye kıyasla hatırı sayılır düzeydeyse, aykırı değerleri kaldırmak başarısız olacaktır. Not: Ortalama değerler aykırı değerlere duyarlıdır. Bu nedenle değiştirme için medyan veya mod değeri dikkate almak daha uygundur.

Veri Doğrulama

Veri temizleme tamamlandıktan sonra, veri kalitesini veri keşfi yöntemiyle yeniden değerlendirmek önemlidir. Bu, veri temizleme sürecinin doğruluğunu ve tamlığını doğrulamak, kısmen bir adımı atlamadığımızdan emin olmak ve ayrıca veri bağlamıyla uyumlu olduğumuzu garanti etmek içindir.

Veri temizleme, raporlama ve otomasyon

Raporlama, temizleme sonrası verinin sağlığını ve temizleme sürecinde yer alan adımları belgeleme işini kapsar. Raporlama, benzer gelecekteki veri temizleme ihtiyaçları için bir kılavuz (yeniden üretilebilirlik) olmasını sağlar; böylece ihtiyaç duyulduğunda bu süreç otomatikleştirilebilir.

Otomasyon, veri temizlemenin yeniden üretilebilir olmasını sağlamaktır. Veri temizleme sürecinin büyük kısmı, ihtiyaç hâlinde yalnızca birkaç değişiklikle yeniden kullanılabilecek tekrar kullanılabilir betiklerden oluşur.

Sonuç

Başarılı bir veri temizleme projesi için dikkate almanız gereken unsurları ve veri temizlemeyi ayrıntılı biçimde ele aldık. Veri uzmanlarının tüm veri bilimi projesinin tahminen %60’ını harcadığı, zaman alan bir aşamadır. Bir veri bilimi projesinin sonucunu tek başına belirleyecek temeldir. Farklı kaynaklardan gelen farklı verilerin farklı ihtiyaçları vardır ve süreçleri kullanım senaryonuza uyacak şekilde uyarlamanız gerekir.

Kaynak:

Konular
Veri Analizi
Veri Bilimi

DataCamp ile Veri Temizlemeyi Öğrenin

Kurs

Python ile Veri Temizleme

4 sa
162.2K
Kirli verileri teşhis etmeyi ve tedavi etmeyi öğrenin ve ham verilerinizi doğru içgörülere dönüştürmek için gerekli becerileri geliştirin!
Ayrıntıları GörüntüleRight Arrow
Kursa Başla
Devamını GörRight Arrow
İlgili

blog

2026’da En Popüler 40 Yazılım Mühendisi Mülakat Sorusu

Algoritmalar, sistem tasarımı ve davranışsal senaryoları kapsayan bu temel sorularla teknik mülakat sürecine hakim olun. Uzman cevapları, kod örnekleri ve kanıtlanmış hazırlık stratejileri edinin.
Dario Radečić's photo

Dario Radečić

15 dk.

blog

Hızlı Sevkiyat İçin Pratik Vibe Kodlama Teknoloji Yığını

Ön uç, arka uç, veritabanları, kimlik doğrulama, depolama, e-posta, test, dağıtım ve izleme için en iyi araçları keşfedin.
Abid Ali Awan's photo

Abid Ali Awan

14 dk.

Eğitim

Python'da Listeyi String'e Nasıl Dönüştürürsünüz

Bu hızlı eğitimde, Python'da bir listeyi string'e nasıl dönüştüreceğinizi öğrenin.
Adel Nehme's photo

Adel Nehme

Eğitim

.gitignore Nasıl Kullanılır: Örneklerle Pratik Bir Giriş

Git deponuzu temiz tutmak için .gitignore’u nasıl kullanacağınızı öğrenin. Bu eğitim; temelleri, yaygın kullanım durumlarını ve başlamanıza yardımcı olacak pratik örnekleri kapsar!
Kurtis Pykes 's photo

Kurtis Pykes

8 dk.

Devamını GörDevamını Gör