Veri temizliği şüphesiz veri biliminde bir ton süre alır ve noksan veriler sık sık karşılaşacağınız zorluklardan biridir. pandas, öteki şeylerin yanı sıra veri kümenizdeki noksan değerleri düzeltmenize destek olan kıymetli bir Python veri işleme aracıdır.
Tamamlanmamış verileri bırakarak yada başka değerlerle doldurarak düzeltebilirsiniz. Bu makalede, pandaları kullanarak noksan verileri doldurmanın değişik yollarını açıklayacağız ve keşfedeceğiz.
1. Fillna() Yöntemini kullanın:
Bu, bir sonraki fillna() işlevi veri kümeniz süresince yinelenir ve tüm boş satırları belirtilen bir değerle doldurur. Bazı isteğe bağlı bağımsız değişkenleri kabul eder— aşağıdakileri not alın:
Kıymet: Bu, noksan satırlara eklemek istediğiniz değerdir.
Yöntem: Tamamlanmamış değerleri ileri yada geri doldurmanızı sağlar. Kabul eder. ‘bfill’ yada ‘doldurma’ parametre.
Yer: Bu koşullu bir ifadeyi kabul eder. True ise, DataFrame’i kalıcı olarak değiştirir. Aksi takdirde, olmaz.
Başlamadan ilkin, Python sanal ortamınıza panda yüklediğinizden güvenilir olun. Pip terminalinizde:
pip install pandas
Peşinden, Python komut dosyasının içinde bir uygulama DataFrame oluşturacağız ve boş değerler ekleyeceğiz (Nan) bazı satırlara:
import pandas
df = pandas.DataFrame({'A' :(0, 3, None, 10, 3, None),
'B' : (None, None, 7.13, 13.82, 7, 7),
'C' : (None, "Pandas", None, "Pandas", "Python", "JavaScript")})
Şimdi, pandalardaki çeşitli mevcut şekilleri kullanarak bu noksan değerleri iyi mi doldurabileceğinize göz atın.
Tamamlanmamış Değerleri Averaj, Ortanca yada Modla Doldurma
Bu yöntem, noksan değerleri hesaplanan averajlarla değiştirmeyi ihtiva eder. Tamamlanmamış verileri averaj yada ortanca bir değerle doldurmak, ilgili sütunlar tamsayı yada kayan veri türlerine haiz olduğunda uygulanabilir.
Tamamlanmamış verileri, en oldukça oluşan kıymet olan mod değeriyle de doldurabilirsiniz. Bu, tamsayılar yada float’lar için de geçerlidir. Sadece söz mevzusu sütunların mısra içermesi daha kullanışlıdır.
Averaj ve ortancayı daha ilkin oluşturduğunuz DataFrame’deki noksan satırlara şu şekilde ekleyebilirsiniz:
#To insert the mean value of each column into its missing rows:
df.fillna(df.mean().round(1), inplace=True)
#For median:
df.fillna(df.median().round(1), inplace=True)
print(df)
Yukarıdaki averaj ve ortanca için yaptığınız benzer biçimde kalıcı kıymeti eklemek, DataFrame’in tamamını yakalamaz. Fakat bunun yerine belirli bir sütuna ekleyebilirsiniz, mesela, sütun C:
df('C').fillna(df('C').mode()(0), inplace=True)
Bununla beraber, for döngüsü kullanarak her sütunun kalıcı kıymetini noksan satırlarına aynı anda eklemek hala mümkündür:
for i in df.columns:
df(i).fillna(df(i).mode()(0), inplace=True)
print(df)
Averaj, ortanca yada modu eklerken sütuna özgü olmak istiyorsanız:
df.fillna({"A":df('A').mean(),
"B": df('B').median(),
"C": df('C').mode()(0)},
inplace=True)
print(df)
Dolgu Kullanarak Boş Satırları Değerlerle Doldurma
Bu, içindeki doldurma yönteminin fillna() fonksiyon. Bu yöntem, her noksan satırı üstündeki en yakın satırın değeriyle doldurur.
İleri doldurma da kabul edebilirsiniz:
df.fillna(method='ffill', inplace=True)
bfill Kullanarak Tamamlanmamış Satırları Değerlerle Doldurma
Burada, doldurma ile yukarıda belirtilen yöntem b doldurma. DataFrame’deki her noksan satırı, altındaki en yakın değerle doldurur.
Buna geri doldurma denir:
df.fillna(method='bfill', inplace=True)
2. replace() Yöntemi
Bunu değiştirebilirsiniz. Nan averaj, ortanca, mod yada başka bir değere haiz belirli bir sütundaki değerler.
Adlandırılmış sütundaki boş satırları averaj, ortanca yada modla değiştirerek bunun iyi mi çalıştığını görün:
import pandas
import numpy #this requires that you've previously installed numpy
#Replace the null values with the mean:
df('A').replace((numpy.nan), df(A).mean(), inplace=True)
#Replace column A with the median:
df('B').replace((numpy.nan), df(B).median(), inplace=True)
#Use the modal value for column C:
df('C').replace((numpy.nan), df('C').mode()(0), inplace=True)
print(df)
3. Tamamlanmamış Verileri enterpolasyonla doldurun()
Bu, bir sonraki enterpolasyon() işlevi, noksan satırları kestirmek için DataFrame’deki varolan değerleri kullanır.
Bunun iyi mi çalıştığını görmek için aşağıdaki kodu çalıştırın:
#Interpolate backwardly across the column:
df.interpolate(method ='linear', limit_direction ='backward', inplace=True)
#Interpolate in forward order across the column:
df.interpolate(method ='linear', limit_direction ='forward', inplace=True)
Tamamlanmamış Satırlarla DikkatliCe Başa Çık
Tamamlanmamış verileri yalnızca averajlar, mod ve öteki yöntemler benzer biçimde varsayılan değerlerle doldurmayı düşünsek de, noksan değerleri düzeltmek için başka teknikler de vardır. Mesela, veri bilimcileri, duruma bağlı olarak kimi zaman bu noksan satırları kaldırır.
Ek olarak, kullanmadan ilkin stratejiniz hakkında eleştirel düşünmek önemlidir. Aksi takdirde, istenmeyen çözümleme yada tahmin neticeleri alabilirsiniz. Bazı ilk veri görselleştirme stratejileri destek olabilir.