LoslegenKostenlos starten

Ordinale Kodierung eines DataFrames

Kategorische Merkmale können mit zwei Techniken kodiert werden: One-Hot-Encoding und ordinale Kodierung. Beim One-Hot-Encoding wird jede Kategorie zu einer Spalte, und für jede Zeile ist die entsprechende Kategoriespalte 1 und die anderen 0. Bei der ordinalen Kodierung werden die Kategorien auf ganzzahlige Werte abgebildet, beginnend bei 0 bis zur Anzahl der Kategorien.

In dieser Übung iterierst du über alle Spalten im users-DataFrame, um die Kategorien ordinal zu kodieren. Außerdem speicherst du für jede Spalte einen Encoder in einem Dictionary ordinal_enc_dict, damit die kodierten Spalten wieder in die ursprünglichen Kategorien zurückverwandelt werden können.

Diese Übung ist Teil des Kurses

<Kurs>Umgang mit fehlenden Daten in Python</Kurs>
Kurs ansehen

Übungsanweisungen

  • Definiere ein leeres Dictionary ordinal_enc_dict.
  • Erstelle für jede Spalte ein Ordinal-Encoder-Objekt.
  • Wähle die Nicht-NULL-Werte der Spalte in users aus und kodiere sie.
  • Weise die kodierten Werte den Nicht-NULL-Werten jeder Spalte (col_name) in users wieder zu.

Interaktive praktische Übung

Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.

# 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 bearbeiten und ausführen