Aan de slagGa gratis aan de slag

Ordinale encodering van een DataFrame

Categorische features kun je encoderen met twee technieken: one-hot encodering en ordinale encodering. Bij one-hot encodering wordt elke categorie een kolom en is voor elke rij de betreffende categoriekolom 1 en de andere 0. Bij ordinale encodering worden de categorieën toegewezen aan gehele waarden, beginnend bij 0 tot het aantal categorieën.

In deze oefening loop je over alle kolommen in de users DataFrame om de categorieën ordinaal te encoderen. Je slaat ook voor elke kolom een encoder op in een dictionary ordinal_enc_dict, zodat de gecodeerde kolommen kunnen worden teruggezet naar de oorspronkelijke categorieën.

Deze oefening maakt deel uit van de cursus

Omgaan met ontbrekende gegevens in Python

Cursus bekijken

Oefeninstructies

  • Definieer een lege dictionary ordinal_enc_dict.
  • Maak voor elke kolom een Ordinal Encoder-object aan.
  • Selecteer de niet-nullwaarden van de kolom in users en codeer ze.
  • Schrijf de gecodeerde waarden terug naar de niet-nullwaarden van elke kolom (col_name) in users.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# 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)
Code bewerken en uitvoeren