Ich habe eine CSV-Datei, die 25 Spalten hat einige sind numerisch und einige sind kategorisch und einige sind wie Namen von Schauspielern, Regisseuren. Ich möchte Regressionsmodelle für diese Daten verwenden. Um dies zu tun, muss ich die String-Typen der kategorischen Spalten in numerische Werte umwandeln, indem ich den LabelBinarizer aus dem scikit-Paket verwende. Wie kann ich LabelBinarize für diesen Datenrahmen verwenden, der mehrere kategorische Daten enthält?LabelBinizerizer für mehrere Spalten im Datenrahmen
Grund mag ich die Etiketten digitalisieren, und sie den Datenrahmen hinzufügen.
Im folgenden Code habe ich die Liste der Spalten abgerufen, die ich binarisieren nicht in der Lage, herauszufinden, wie die neue Spalte zurück zu der df hinzufügen?
categorylist = ['color', 'language', 'country', 'content_rating']
for col in categorylist:
tempdf = label_binarizer.fit_transform(df[col])
Im nächsten Schritt möchte ich die tempdf
zu df
hinzufügen und die ursprüngliche Spalte df [col] fallen.
Ist 'df' in Ihrem Code ein Pandas Dataframe? Bitte beachten Sie, dass die Ausgabe von 'sklearn' Methoden (wie' fit_transform' in Ihrem Code) ein numpy Array ist! Daher ist 'tempdf' in Ihrem Code kein' Pandas' dataframe! Zuerst müssen Sie es in einen Datenrahmen konvertieren (zum Beispiel 'newdf = pd.DataFrame (tempdf)') und dann concat es zu Ihrem 'df'. Sie können die Spalten auch mit 'del df ['column_name']' 'löschen. Ein letzter Kommentar ist, um sicherzustellen, ob Sie 'LableBinalizer' oder' MultiLabelBinarizer' benötigen. – MhFarahani