Odak modu
Veri Temizleme: Giriş ve NaN (Null, Boş) Değerler
Video Link: https://youtu.be/ovYNhnltVxY
Pandas ve NumPy'da bazen değerlerin "NaN" olduğunu görürüz. Peki bu değerler nedir? NaN değerler verinin boş olduğunda (orada veri olmadığında), geçersiz olduğunda görülen değerlerdir. Bu durum verinin gerçekten boş olmasından ya da teknik aksaklıklardan (verinin elde edilmesinde olan hatalardan, verinin elde edilirken bozulmasından) da kaynaklanabilir. Örneğin; bitcoin verisi bir zaman aralığı için elde edilememiş olabilir, bu durum da o zaman aralığındaki değerin NaN olmasına yol açabilir. Ya da bir ankette birisi yaş değerini negatif girmiş olabilir ve yaş değerini kontrol eden algoritma bu değeri NaN olarak kaydetmiş olabilir. <br>
Pandas'ta NaN değerlerle yapılabilen işlemlere bakalım. NumPy ve Pandas'ı import edelim: <br>
import numpy as np
import pandas as pd
Python'da NaN değerini "np.nan" ya da "None" kullanarak gösterebiliriz. Pandas bize NaN değerleri kontrol etmek ve belirlemek için bazı fonksiyonlar sunar. Aşağıda örnekler verilmiştir: <br>
# değer null mu diye kontrol ediyoruz value = np.nan pd.isnull(value) # aynı şekilde "pd.isna" metodunu da kullanabiliriz
True
Bu işlemlerin tersi ise şu fonksiyonlarla yapılabilir: <br>
# değer null değil mi diye kontrol ediyoruz value = None pd.notnull(value) # aynı şekilde "pd.notna" metodunu da kullanabiliriz
False
Bu fonksiyonlar Seri ve Dataframe'lerde de çalışır: <br>
# serilerde kontrol edersek fonksiyon da seri döndürür pd.isnull(pd.Series([None, 2, np.nan, ""]))
0 True 1 False 2 True 3 False dtype: bool
Dataframe kullanırsak: <br>
pd.isnull(pd.DataFrame({
'Sütun A': [1, np.nan, 7],
'Sütun B': [np.nan, 2, np.nan]
}))
Sütun A Sütun B
0 False True
1 True False
2 False True
Eğer bir matematiksel işlem yapıyorsak Pandas NaN değerleri görmezden gelir ve işlemde hata vermez. <br>
pd.Series([1, 2, np.nan]).sum()
3
Pandas ile önce boş değerleri bularak sonra da boolean filtreleme yaparak boş değerleri filtreleyebiliriz: <br>
s = pd.Series([1, 2, np.nan, 4, np.nan])
# null olmayan değerleri alalım ve bu değerleri filtreleyelim
s[pd.notnull(s)]
0 1.0
1 2.0
3 4.0
dtype: float64
Pandas bize "dropna" adlı metodu ile kolayca boş verilerden kurtulmayı sağlar: <br>
# boş değerleri atılmış seriyi yazdıralım
# (fonksiyonun inplacee parametresine True değerini vermezsek s serisinin değişmeyeceğini unutmayalım.)
s.dropna()
0 1.0
1 2.0
3 4.0
dtype: float64
Sektörde en çok aranan yazılım becerilerini kazan
Yapay zeka desteği, birebir mentörlük saatleri, canlı dersler ve senin için özel hazırlanmış içeriklerle eksiklerini tamamla, düzenli geri bildirimler al ve öğrenme sürecini en verimli hale getir.
Yunus Emre Kabakcı
Patika+ mezunuPatika+ Fullstack Web Development Bootcamp mezunumuz Yunus Emre,
3 ay içinde Katar’dan aldığı teklif ile, global bir şirket olan Pavo Group’da işe başladı!
“İçerik zenginliği, mentor desteği, ileriye dönük bir network sağlaması ve dünyada en çok tercih edilen frameworkler üzerinden bir eğitim veriyor olması Patika+’ı tercih etmemin temel sebepleri oldu!“
Yorum yapabilmek için derse kayıt olmalısın!