pandas或者sklearn中如何将字符形式的标签数字化

例如我有一个标签列形如:
[A,A,A,B,B,C,C,C,C]
转化为:
[0,0,0,1,1,2,2,2,2]

pandas和scikit-learn中有简单的实现吗?

另外大家在学习一个新的包时是怎样根据问题找到文档的具体位置的?有啥经验可以交流下吗?谢谢啦!

绝地无双
浏览 1030回答 4
4回答

慕码人8056858

pandas中是非常容易实现的,转换成Categories对象即可。术语叫做因子和水平,水平一般都会自动转成数字储存。 c = ['A','A','A','B','B','C','C','C','C'] category = pd.Categorical(c) 接下来查看category的label即可 print category.labels

红颜莎娜

这只是个映射的逻辑而已,根本没必要用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吗 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'))
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python