如何确定遇到的字符串映射到整数的顺序?这是确定性的吗?
更重要的是,我可以指定此订单吗?
import pandas as pdfrom sklearn import preprocessingdf = 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","fourth"]) print encoded### this prints [0 2 3 1]
我希望le.classes_为[“first”,“second”,“third”,“4th”],然后编码为[0 1 2 3],因为这是字符串出现在列中的顺序.可以这样做吗?
解决方法 它按排序顺序完成.在字符串的情况下,它按字母顺序完成.没有相关的文档,但是查看 LabelEncoder.transform的源代码,我们可以看到工作主要委托给函数 numpy.setdiff1d,其中包含以下文档:Find the set difference of two arrays.
Return the sorted,unique values in ar1 that are not in ar2.
(强调我的).
请注意,由于未记录,因此可能已实现实现,并且可以在不同版本之间进行更改.可能只是我看起来的版本使用排序顺序,而其他版本的scikit-learn可能会改变这种行为(通过不使用numpy.setdiff1d).
总结以上是内存溢出为你收集整理的python – 适合Pandas df的LabelEncoder顺序全部内容,希望文章能够帮你解决python – 适合Pandas df的LabelEncoder顺序所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)