Bir DataFrame'in sıralı (ordinal) kodlanması
Kategorik özellikler iki teknikle kodlanabilir: one-hot encoding ve ordinal encoding. One-hot encoding'de her kategori bir sütuna dönüşür; her satır için ilgili kategori sütunu 1, diğerleri 0 olur. Ordinal encoding'de ise kategoriler 0'dan kategori sayısına kadar tamsayılara eşlenir.
Bu egzersizde, users DataFrame'indeki tüm sütunları dolaşarak kategorileri sıralı (ordinal) olarak kodlayacaksın. Ayrıca, her sütun için bir kodlayıcıyı ordinal_enc_dict sözlüğünde saklayacaksın ki, kodlanmış sütunlar gerektiğinde özgün kategorilere geri dönüştürülebilsin.
Bu egzersiz, kursun bir parçasıdır
Python'da Eksik Verilerle Çalışma
Egzersiz talimatları
- Boş bir sözlük
ordinal_enc_dicttanımla. - Her sütun için bir Ordinal Encoder nesnesi oluştur.
- users içindeki sütunun boş olmayan değerlerini seç ve bunları kodla.
- Kodlanan değerleri users'ta her sütunun (
col_name) boş olmayan değerlerine geri ata.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
# Create an empty dictionary ordinal_enc_dict
ordinal_enc_dict = ___
for col_name in users:
# Create Ordinal encoder for col
ordinal_enc_dict[col_name] = ___
col = users[col_name]
# Select non-null values of col
col_not_null = ___
reshaped_vals = col_not_null.values.reshape(-1, 1)
encoded_vals = ordinal_enc_dict[col_name].fit_transform(reshaped_vals)
# Select the non-null values for the column col_name in users and store the encoded values
users.loc[___, ___] = np.squeeze(encoded_vals)