Veri bilimi ve analiz, günümüzde her alanda kritik bir rol oynuyor. Ancak, veriler üzerinde çalışırken karşımıza çıkan birkaç yaygın sorun, işleri biraz daha karmaşık hale getirebilir. Bunlardan en dikkat çekeni ise
'NaN' (Not a Number) ve
'Null' (boş) değerleridir. Bu değerler, veritabanlarında ya da veri setlerinde kayıp veya geçersiz bilgiler olarak yer alır. Bu tür eksik veriler, analizlerinizi bozabilir ve yanıltıcı sonuçlara yol açabilir. Neyse ki, Python programı sayesinde bu tür değerlerle başa çıkmanın birkaç etkili yolu var.
1. Pandas ile 'NaN' ve 'Null' Değerlerini Bulmak
Veri setinizi temizlemeye başlamadan önce, eksik verileri tanımlamanız gerekiyor. Pandas kütüphanesi, Python'da veri analizi yaparken en sık kullanılan araçlardan biridir ve eksik verileri bulmak oldukça kolaydır. İşte başlamak için kullanabileceğiniz birkaç satır kod:
import pandas as pd
# Örnek veri seti
data = pd.DataFrame({
'A': [1, 2, None, 4],
'B': [None, 2, 3, 4],
'C': [1, 2, 3, 4]
})
# NaN değerlerini bulma
print(data.isna())
Yukarıdaki kod, veri setindeki NaN değerlerini tespit etmenizi sağlar. Şimdi eksik veriler üzerinde işlem yapabiliriz.
2. Eksik Verileri Silme
Veri temizliği yaparken, bazen eksik verilerden kurtulmak en iyi çözümdür. Pandas, satır ya da sütun bazında eksik verileri kolayca silebilmenizi sağlar. İşte bu işlemi nasıl yapabileceğinizi gösteren basit bir kod örneği:
# NaN değerler içeren satırları silme
data_cleaned = data.dropna()
# NaN değerler içeren sütunları silme
data_cleaned = data.dropna(axis=1)
Bu yöntem, veri setinizdeki eksik satır veya sütunları temizler. Ancak, verinin boyutu çok büyükse, bu çözüm verilerin kaybolmasına yol açabilir. Bu yüzden dikkatli kullanmak gerekir.
3. Eksik Verileri Doldurma
Eksik verileri silmek her zaman en iyi seçenek olmayabilir. Bu nedenle, eksik verileri bir değerle doldurmak da yaygın bir yöntemdir. NaN değerlerini ortalama, medyan veya mod gibi bir istatistiksel değerle doldurabilirsiniz:
# NaN değerlerini sütun ortalaması ile doldurma
data_filled = data.fillna(data.mean())
Bu yöntem, veri kaybını önler ve eksik verilerle başa çıkmanın etkili bir yoludur.
4. Veri Doldurma İçin Sabit Değer Kullanma
Bazen NaN değerlerini anlamlı bir sabit değerle doldurmak gerekebilir. Örneğin, sayısal verilerde NaN değerlerini 0 ile doldurmak ya da metin verilerinde 'Bilinmiyor' gibi bir değer kullanmak doğru olabilir. Bunu şu şekilde yapabilirsiniz:
# NaN değerlerini sabit bir değer ile doldurma
data_filled = data.fillna(0) # Sayısal veriler için
Bu yöntem, bazı durumlarda veri setini anlamlı hale getirebilir, ancak doğru dolgu değerini seçmek önemlidir.
5. NaN Değerlerini Tahmin Etme
Veri setinizdeki eksik değerleri tahmin etmek, daha gelişmiş bir yaklaşımdır. Bir makine öğrenmesi algoritması kullanarak eksik verileri tahmin edebilirsiniz. Örneğin, KNN (K-en yakın komşu) algoritması ile bu değerleri doldurabilirsiniz:
from sklearn.impute import KNNImputer
imputer = KNNImputer(n_neighbors=2)
data_filled = imputer.fit_transform(data)
Bu yöntem, eksik verileri benzer veri noktalarından tahmin ederek doldurur ve genellikle daha doğru sonuçlar verir.
6. Veri Tipine Göre Temizleme
Bazen NaN değerleri, belirli bir veri türünde daha anlamlı olabilir. Örneğin, metin verilerinde eksik bir hücreyi 'Bilinmiyor' gibi bir değerle doldururken, sayısal verilere 0 ya da ortalama değeri koymak daha uygun olabilir. Bu şekilde veri türüne göre uygun doldurma yöntemleri seçmek, daha doğru sonuçlar elde etmenizi sağlar.
7. Eksik Veri Raporlaması
Son olarak, veri setinizdeki eksik verileri raporlamak da önemlidir. Verileri temizledikten sonra, hangi verilerin eksik olduğunu ve hangi işlemlerin yapıldığını raporlamak, veri analizinizin şeffaflığını artırır. Bu şekilde, veri setinin temizlenmiş hali hakkında net bir anlayış elde edilebilir.
# Eksik veri raporlaması
missing_data = data.isna().sum()
print(f'Eksik veri sayısı:\n{missing_data}')
Bu, eksik verilerin hangi sütunlarda olduğunu hızlıca görmenize yardımcı olur ve veri temizliği sürecinizin doğruluğunu artırır.
Sonuç
NaN ve Null değerleri, veri analizi sürecinde en sık karşılaşılan sorunlardan biridir, ancak Python ile bu sorunların üstesinden gelmek oldukça kolaydır. Pandas ve diğer araçlar sayesinde, veri temizliği işlemi artık çok daha verimli hale gelmiştir. Eksik verilerle başa çıkmak için çeşitli yöntemler mevcut, ve doğru yaklaşımı seçmek, elde ettiğiniz verilerin kalitesini ve güvenilirliğini artıracaktır.
Eğer Python'da veri analizi yapıyorsanız, bu teknikleri kullanarak veri setinizi temizlemek, analizlerinizin doğruluğunu ve başarısını garanti altına alacaktır. Şimdi, veri analizi yolculuğunuzda eksik verilerle başa çıkmaya hazırsınız!