Python ile Veri Temizleme Yöntemleri

Giriş: Neden Veri Temizleme Önemlidir?

Veri bilimi projelerinde, elimizdeki verilerin kalitesi, elde edeceğimiz sonucun doğruluğunu etkileyen en önemli faktörlerden biridir. Ham veriler genellikle eksik, tutarsız veya hatalı bilgiler içerebilir. Bu noktada veri temizleme (data cleaning) devreye girer. Veri temizleme, kullanılabilir ve analiz edilebilir hale getirmek için verilerin düzeltilmesi ve standartlaştırılması sürecidir. Python, veri analizi ve temizleme için en çok tercih edilen dillerden biridir. Bu yazıda Python ile veri temizleme sürecine dair detaylı bilgi vereceğim.

Python, veri temizleme için birçok güçlü kütüphane sunar. Özellikle pandas, açık veri setlerini işlemekte ve veri çerçeveleri ile çalışmakta son derece etkilidir. Veri temizleme, asıl veri analizi sürecine başlamadan önce yapılması gereken ilk adımdır. Veriler, hem sayısal hem de kategorik formatlarda olabilir ve bunların her birinin temizlenmesi farklı yöntemler gerektirebilir.

Bu yazıda, veri temizleme sürecinin aşamalarına, adım adım uygulamalara ve dikkat edilmesi gereken noktalara değineceğiz. Özellikle pandas kütüphanesi üzerinde durarak, verilerin nasıl temizlenebileceğini örneklerle açıklayacağız.

Pandas ile Veri Temizleme Temel Adımları

Veri Setini İçe Aktarma

Veri temizleme sürecinin ilk adımı, verilerimizi içe aktarmaktır. Pandas kütüphanesi, çeşitli formatlarda veri içe aktarmamıza olanak tanır. Örneğin, CSV dosyaları en yaygın veri kaynaklarından biridir. Verileri içe aktarmak için pandas’ın read_csv fonksiyonunu kullanabiliriz:

import pandas as pd

df = pd.read_csv('veri_seti.csv')

Yukarıdaki kod ile ‘veri_seti.csv’ dosyasındaki verileri bir DataFrame (veri çerçevesi) olarak içe aktarmış olduk. Veri çerçevesi, analize ve temizlemeye hazır hale getirdiğimiz ham verileri tutmamıza olanak tanır.

Veri çerçevesini oluşturduktan sonra, verilerin ilk birkaç satırını görüntülemek için head() metodunu kullanabiliriz:

print(df.head())

Bu şekilde verimizin genel yapısını ve içeriğini görebiliriz. Veri setinde hangi tür verilerin bulunduğunu, sütun isimlerini ve ilk satırlarda hangi değerlerin yer aldığını gözlemlemek temizleme sürecine başlamamız için önemli bir adımdır.

Eksik Verileri Tespit Etme ve Temizleme

Veri setlerimizdeki eksik verileri tespit etmek, veri temizleme sürecinin en kritik aşamalarından biridir. Pandas ile eksik verileri tespit etmek için isnull() fonksiyonu kullanılabilir:

print(df.isnull().sum())

Yukarıdaki kod, her sütundaki eksik değer sayısını gösterir. Bu sayılar, verilerimizi nasıl işleyeceğimiz konusunda bize ipuçları verir. Eğer bir sütundaki eksik veri oranı %50’nin üzerindeyse, bu sütunu tamamen kaldırmak mantıklı olabilir. Bunun için dropna() metodunu kullanabiliriz:

df = df.dropna(axis=1, thresh=len(df)*0.5)

Bu kod, %50’den fazla eksik veriye sahip sütunları veri çerçevesinden kaldırır. Alternatif olarak, eksik verileri doldurmak da bir diğer seçenektir. Örneğin, sayısal verilerde ortalama veya medyan kullanarak eksik değerleri doldurmak oldukça yaygındır:

df['sütun_adi'] = df['sütun_adi'].fillna(df['sütun_adi'].mean())

Yukarıdaki örnek, ‘sütun_adi’ isimli sütundaki eksik değerler için ortalama hesaplar ve eksik değerleri bu ortalama ile doldurur. Bu tür işlemler, veri setinizin bütünlüğünü sağlamaya yardımcı olur.

Aykırı Değerleri Tespit Etme ve Yönetme

Aykırı değerler, veri analizi esnasında dikkate alınması gereken önemli unsurlardır. Bu tür değerler, genellikle hatalı ölçümler veya anormal verilerden kaynaklanır. Pandas ile aykırı değerleri tespit etmek için çeşitli yöntemler kullanılabilir. Örneğin, bir veri sütunundaki verileri görselleştirerek aykırı değerleri belirleyebiliriz:

import matplotlib.pyplot as plt

plt.boxplot(df['sütun_adi'])
plt.title('Aykırı Değer Analizi')
plt.show()

Yukarıdaki boxplot, ‘sütun_adi’ isimli sütundaki aykırı değerleri görselleştirir. Boxplot analizi, verilerinizdeki çeyrekler ve medyan hakkında bilgi verirken, aykırı değerleri de kolayca tespit etmenizi sağlar. Aykırı değerler tespit edildikten sonra, bu değerlerin işlenmesi gereklidir.

Aykırı değerleri kaldırmak veya belirli bir limitin dışındaki değerleri değiştirmek için clip() metodunu kullanabilirsiniz:

df['sütun_adi'] = df['sütun_adi'].clip(lower=alt_limit, upper=ust_limit)

Bu kod, belirtilen alt ve üst limitlerin dışındaki değerleri, bu limitlere eşitleyerek temizleme işlemi gerçekleştirir. Aykırı değer yönetimi, veri analizi sonucunuzun doğruluğunu artırmada önemli bir rol oynamaktadır.

Kategorik Verileri Temizleme

Birleştirme ve Dönüştürme İşlemleri

Kategorik veriler, genellikle etiket şeklinde gösterilen verileri içerir ve bu tür veriler çeşitli kategorilere ayrılabilir. Veri setlerinde bu kategorik verilerin düzenlenmesi, temizleme sürecinde önemlidir. Kategorik verileri birleştirme veya dönüştürme işlemlerini gerçekleştirmek için pandas’ın replace() ve get_dummies() fonksiyonları kullanılabilir.

df['sütun_adi'] = df['sütun_adi'].replace({'eski_değer': 'yeni_değer'})

Yukarıdaki kod örneğinde, ‘sütun_adi’ sütunundaki ‘eski_değer’ değeri ‘yeni_değer’ ile değiştirilir. Bu tür dönüşüm işlemleri, veri setindeki tutarlılığı sağlamak amacıyla sıklıkla kullanılır. Verilerde tutarlılığı sağladıktan sonra, her bir kategorik değişken için ayrı sütunlar oluşturmak da önemlidir:

df = pd.get_dummies(df, columns=['kategori_sütunu'])

Bu kod, ‘kategori_sütunu’ isimli sütundaki benzersiz kategori değerleri için ayrı sütunlar oluşturur. Böylece makine öğrenimi modeliniz için verilerinizi hazırlamak daha kolay hale gelir.

Veri Formatlarını Standartlaştırma

Veri temizlemede önemli bir diğer adım ise veri formatlarının standartlaştırılmasıdır. Özellikle tarih ve saat verileri, sık karşılaşılan sorunlardan biridir. Tarih formatlarını standart hale getirmek için pandas’ın to_datetime() fonksiyonu kullanılabilir:

df['tarih_sütunu'] = pd.to_datetime(df['tarih_sütunu'], errors='coerce')

Bu kod, belirttiğiniz ‘tarih_sütunu’ sütununu standart bir datetime formatına çevirir. errors='coerce' parametresi, hatalı veri içeren tarihler için NaT (Not a Time) dönüşümü yapar. Bu durum, veri setindeki hatalı tarihleri temizlemede oldukça faydalıdır.

Diğer veri türleri için de benzer dönüşüm işlemleri gerçekleştirilebilir. Örneğin, sayısal verileri string formatından float veya int formatına dönüştürmek için astype() fonksiyonu kullanılabilir:

df['sayı_sütunu'] = df['sayı_sütunu'].astype(float)

Bu tür dönüşüm işlemleri, veri setinizin analiz öncesinde standart bir forma kavuşmasını sağlayarak, daha verimli bir veri temizleme süreci geçirmeye yardımcı olur.

Özet ve Sonuç

Veri temizleme, veri bilimi ve analiz süreçlerinin vazgeçilmez bir parçasıdır. Python, veri setlerimizi temizlemek ve analiz etmek için sunduğu zengin kütüphaneler ile bu süreci son derece kolaylaştırmaktadır. Pandas, veri temizleme için en popüler kütüphanelerden biridir ve eksik verilerin tespiti, aykırı değerlerin yönetimi, kategorik verilerin dönüştürülmesi gibi birçok işlevselliği bünyesinde barındırmaktadır.

Temizlenmiş ve standartlaştırılmış veriler, analiz süreçlerindeki doğruluğu artırır ve güvenilir sonuçlar elde etmemize yardımcı olur. Yazımızda, veri temizleme adımlarını adım adım ele aldık ve gerekli kod örnekleriyle birlikte açıkladık. Unutulmamalıdır ki, veri temizleme süreci her projeye özgüdür ve farklı veri setleri için değişkenlik gösterebilir. Bu nedenle, farklı veri türleri üzerinde tecrübe kazanmak önemlidir.

Son olarak, temizlenmiş verilere sahip olmak, makine öğrenimi modellerini eğitmek ve etkili veri analizi yapmak açısından kritik bir adımdır. Kendi projelerinizde bu adımları uygulayarak, veri temizleme becerilerinizi geliştirebilir ve Python ile veri bilimi alanında daha ileriye gidebilirsiniz.

Scroll to Top