Sklearn LabelEncoder wirft TypeError in der Art
Ich bin lernen maschinelles lernen Verwendung Titanic Datensatz von Kaggle. Ich bin mit LabelEncoder von sklearn zu transformieren text-Daten in numerische labels. Der folgende code funktioniert für "Sex" aber nicht für "Eingeschlagen".
encoder = preprocessing.LabelEncoder()
features["Sex"] = encoder.fit_transform(features["Sex"])
features["Embarked"] = encoder.fit_transform(features["Embarked"])
Dies ist der Fehler, ich habe
Traceback (most recent call last):
File "../src/script.py", line 20, in <module>
features["Embarked"] = encoder.fit_transform(features["Embarked"])
File "/opt/conda/lib/python3.6/site-packages/sklearn/preprocessing/label.py", line 131, in fit_transform
self.classes_, y = np.unique(y, return_inverse=True)
File "/opt/conda/lib/python3.6/site-packages/numpy/lib/arraysetops.py", line 211, in unique
perm = ar.argsort(kind='mergesort' if return_index else 'quicksort')
TypeError: '>' not supported between instances of 'str' and 'float'
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich löste es selbst. Das problem war, dass die Besonderheit hatte, NaN-Werte. Ersetzen Sie es mit einem numerischen Wert, es wird immer noch einen Fehler auslösen, da es von verschiedenen Datentypen. So ersetzte ich es mit einem Charakter Wert
Versuchen, diese Funktion, werden Sie brauchen, um passieren, ein Pandas Dataframe. Es wird sich mit der Art von Ihre Spalte und codieren. So müssen Sie sich nicht einmal die Mühe, die überprüfung der Typen selbst.