我对一个熊猫df中的一列中的scikit-learn LabelEncoder适合。LabelEncoder适合熊猫df的顺序
如何确定遇到的字符串映射到整数的顺序?它是确定性的吗?
更重要的是,我可以指定这个顺序吗?
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]
我希望le.classes_
为["first", "second", "third", "fourth"]
,然后encoded
是[0 1 2 3
],因为这是该字符串出现在列的顺序。这可以做到吗?
我也在使用LabelEncoder,将字符串编码为整数标签,并提出一个问题,其中用户希望数字标签出现的顺序与特定顺序相同,就像您所描述的那样。找出如何做到这一点?我可能只需要写我自己的。 –
按照您所说的定制解决方案,或修复scikit-learn版本并依据排序顺序,如Mephy的答案中所述。这就是它对我来说的样子。 – tkja
是的谢谢我只是把它作为一个字典查找,反正很快。谢谢 –