Pandas dataframe'deki sütunlar nasıl normalleştirilir?


Çoğu zaman bir pandas DataFrame’deki bir veya daha fazla sütunun veri değerlerini normalleştirmek isteyebilirsiniz.

Bu eğitimde bunu yapmanın iki yolu açıklanmaktadır:

1. Min-Maks normalizasyonu

  • Amaç: Her veri değerini 0 ile 1 arasında bir değere dönüştürür.
  • Formül: Yeni değer = (değer – min) / (maks – min)

2. Ortalama normalizasyon

  • Amaç: Değerleri, tüm değerlerin ortalaması 0 ve std olacak şekilde ölçekler. dev. 1’dir.
  • Formül: Yeni değer = (değer – ortalama) / (standart sapma)

Her yöntemin bir panda DataFrame’de nasıl kullanılacağına dair bir örnek görelim.

Örnek 1: min-maks normalleştirme

Aşağıdaki pandalara sahip olduğumuzu varsayalım DataFrame:

 import pandas as pd

#createDataFrame
df = pd.DataFrame({'points': [25, 12, 15, 14, 19],
                   'assists': [5, 7, 7, 9, 12],
                   'rebounds': [11, 8, 10, 6, 6]}) 

#view DataFrame
print (df)

   points assists rebounds
0 25 5 11
1 12 7 8
2 15 7 10
3 14 9 6
4 19 12 6

DataFrame’in her sütununa minimum-maksimum normalizasyon uygulamak için aşağıdaki kodu kullanabiliriz:

 (df-df. min ())/(df. max ()-df. min ())

        points assists rebounds
0 1.000000 0.000000 1.0
1 0.000000 0.285714 0.4
2 0.230769 0.285714 0.8
3 0.153846 0.571429 0.0
4 0.538462 1.000000 0.0

Her sütundaki maksimum değer artık 1 ve her sütundaki minimum değer artık 0 olup diğer tüm değerler 0 ile 1 arasındadır.

Örnek 2: ortalama normalizasyon

Tekrar aşağıdaki panda DataFrame’e sahip olduğumuzu varsayalım:

 import pandas as pd

#createDataFrame
df = pd.DataFrame({'points': [25, 12, 15, 14, 19],
                   'assists': [5, 7, 7, 9, 12],
                   'rebounds': [11, 8, 10, 6, 6]}) 

#view DataFrame
print (df)

   points assists rebounds
0 25 5 11
1 12 7 8
2 15 7 10
3 14 9 6
4 19 12 6

DataFrame’deki her sütuna ortalama normalleştirme uygulamak için aşağıdaki kodu kullanabiliriz:

 (df- df.mean ())/df. std ()

        points assists rebounds
0 1.554057 -1.133893 1.227881
1 -0.971286 -0.377964 -0.087706
2 -0.388514 -0.377964 0.789352
3 -0.582772 0.377964 -0.964764
4 0.388514 1.511858 -0.964764

Artık her sütundaki değerler, her sütundaki değerlerin ortalaması 0 ve her sütundaki değerlerin standart sapması 1 olacak şekilde normalleştirilmiştir.

Belirli bir veri noktasının normalleştirilmiş değeri 0’dan büyükse, bu, veri noktasının kendi sütununun ortalamasından daha büyük olduğunu gösterir. Tersine, 0’dan küçük bir normalleştirilmiş değer, veri noktasının kendi sütununun ortalamasının altında olduğunu gösterir.

Ek kaynaklar

Pandalar: birden çok sütunda nasıl gruplandırılır ve toplanır
Pandas DataFrame’i birden çok koşulda filtreleme
Pandas DataFrame’de eksik değerler nasıl sayılır?

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir