Ordinal kodning av en DataFrame
Kategoriska särdrag kan kodas med två tekniker: one-hot-kodning och ordinal kodning. Vid one-hot-kodning blir varje kategori en egen kolumn, där värdet är 1 för den aktuella kategorin och 0 för övriga. Vid ordinal kodning mappas kategorierna till heltalsvärden som börjar på 0 och går upp till antalet kategorier.
I den här övningen loopar du igenom alla kolumner i users-DataFrame:n för att ordinalt koda kategorierna. Du lagrar också en kodare för varje kolumn i en ordbok, ordinal_enc_dict, så att de kodade kolumnerna kan konverteras tillbaka till de ursprungliga kategorierna.
Den här övningen är en del av kursen
Hantera saknade värden i Python
Övningsinstruktioner
- Definiera en tom ordbok
ordinal_enc_dict. - Skapa ett Ordinal Encoder-objekt för varje kolumn.
- Välj icke-null-värden för kolumnen i users och koda dem.
- Tilldela tillbaka de kodade värdena till icke-null-värdena för varje kolumn (
col_name) i users.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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)