Ich bin passend ein Scikit-Learn LabelEncoder auf einer Säule in einem Pandas df.LabelEncoder Reihenfolge des Sitzes für eine Pandas df
Wie wird die Reihenfolge, in der die aufgetretenen Strings den ganzen Zahlen zugeordnet sind, bestimmt? Ist es deterministisch? wichtiger
Mehr kann ich diese Bestellung angeben?
import pandas as pd
from sklearn import preprocessing
df = pd.DataFrame(data=["first", "second", "third", "fourth"], columns=['x'])
le = preprocessing.LabelEncoder()
le.fit(df['x'])
print list(le.classes_)
### this prints ['first', 'fourth', 'second', 'third']
encoded = le.transform(["first", "second", "third", "fourth"])
print encoded
### this prints [0 2 3 1]
würde ich erwarten, le.classes_
["first", "second", "third", "fourth"]
und dann encoded
sein [0 1 2 3
] zu sein, da dies die Reihenfolge, in der die Zeichenfolge in der Spalte angezeigt. Kann das gemacht werden?
ich auch mit dem LabelEncoder, codierte Zeichenfolge, auf ganzzahlige Labels arbeitete und mit einem Problem kommen, wo der Benutzer eine bestimmte Reihenfolge erscheinen die Nummernschilder will, ist, wie einfach beschreiben Sie. Finde heraus, wie es geht? Ich muss wahrscheinlich nur mein eigenes schreiben. –
Rollen Sie entweder eine benutzerdefinierte Lösung wie Sie gesagt haben, oder reparieren Sie die scikit-learn Version und verlassen Sie sich auf die Sortierreihenfolge, wie in der Antwort von Mephy beschrieben. So sieht es für mich aus. – tkja
yeah thanks Ich habe es gerade ein dict lookup gemacht, das sowieso ziemlich schnell ist. Danke –