Ordinale Kodierung einer kategorialen Spalte
Das Imputieren kategorialer Werte erfordert ein paar zusätzliche Schritte im Vergleich zu numerischen Werten. Zuerst musst du sie in numerische Werte umwandeln, da statistische Operationen nicht auf Strings ausgeführt werden können.
Du verwendest den User-Profile-Datensatz, der Kundenpräferenzen und -entscheidungen eines Restaurants enthält. Er besteht nur aus kategorialen Merkmalen. In dieser Übung wandelst du die kategoriale Spalte 'ambience' mit OrdinalEncoder aus sklearn in eine numerische Spalte um. Der DataFrame wurde als users für dich geladen. Die Funktion OrdinalEncoder() ist ebenfalls geladen.
Die head()- und tail()-Ausgaben des users-DataFrames wurden für dich ausgegeben.
Diese Übung ist Teil des Kurses
<Kurs>Umgang mit fehlenden Daten in Python</Kurs>Übungsanweisungen
- Erzeuge das Ordinal-Encoder-Objekt und weise es
ambience_ord_enczu. - Wähle die nicht fehlenden Werte der Spalte
'ambience'inusersaus. - Forme
ambience_not_nullauf die Form(-1, 1)um. - Ersetze die nicht fehlenden Werte von
ambiencedurch die kodierten Werte.
Interaktive praktische Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
# Set col_name to 'ambience'
col_name = 'ambience'
# Create Ordinal encoder
ambience_ord_enc = ___
# Select non-null values of ambience column in users
ambience = users[col_name]
ambience_not_null = ___
# Reshape ambience_not_null to shape (-1, 1)
reshaped_vals = ___
# Select the non-null values for the column col_name in users and store the encoded values
encoded_vals = ambience_ord_enc.fit_transform(reshaped_vals)
users.loc[___, col_name] = np.squeeze(encoded_vals)