84669 person learning
152542 person learning
20005 person learning
5487 person learning
7821 person learning
359900 person learning
3350 person learning
180660 person learning
48569 person learning
18603 person learning
40936 person learning
1549 person learning
1183 person learning
32909 person learning
例如我有一个标签列形如: [A,A,A,B,B,C,C,C,C]转化为: [0,0,0,1,1,2,2,2,2]
pandas和scikit-learn中有简单的实现吗?
另外大家在学习一个新的包时是怎样根据问题找到文档的具体位置的?有啥经验可以交流下吗?谢谢啦!
ringa_lee
pandas中是非常容易实现的,转换成Categories对象即可。术语叫做因子和水平,水平一般都会自动转成数字储存。
pandas
c = ['A','A','A','B','B','C','C','C','C'] category = pd.Categorical(c)
接下来查看category的label即可
print category.labels
sklearn中有现成的:
preprocessing.LabelEncoder().fit_transform(data)
详见官方文档
就可以直接字符数字间的转换了
没有实际运用过,不知道map函数能否实现你的需求,具体参考文档http://pandas.pydata.org/pand...
map
这只是个映射的逻辑而已,根本没必要用pandas和scikit-learn,大材小用了嘛
映射
a = ['A','A','A','B','B','C','C','C','C'] result = [x for x in map(lambda c: ord(c) - ord('A'), a)]
如果非要说用pandas,那么这不正好是 Series吗
Series
import pandas as pd a = ['A','A','A','B','B','C','C','C','C'] result = pd.Series(a).map(lambda c: ord(c) - ord('A'))
pandas
中是非常容易实现的,转换成Categories对象即可。术语叫做因子和水平,水平一般都会自动转成数字储存。接下来查看category的label即可
sklearn中有现成的:
详见官方文档
就可以直接字符数字间的转换了
没有实际运用过,不知道
map
函数能否实现你的需求,具体参考文档http://pandas.pydata.org/pand...
这只是个
映射
的逻辑而已,根本没必要用pandas和scikit-learn,大材小用了嘛如果非要说用pandas,那么这不正好是
Series
吗