【发布时间】:2016-12-09 12:17:43
【问题描述】:
我正在将 scikit-learn LabelEncoder 安装在 pandas 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],因为这是字符串在列中出现的顺序。这个可以吗?
【问题讨论】:
-
要对生成的编码进行排序,请参阅
OrderedLabelEncoder
标签: python pandas scikit-learn