python - pandas或者sklearn中如何将字符形式的标签数字化
ringa_lee
ringa_lee 2017-04-18 10:06:45
0
4
1685

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

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

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

ringa_lee
ringa_lee

ringa_lee

모든 응답 (4)
左手右手慢动作

pandas中是非常容易实现的,转换成Categories对象即可。术语叫做因子和水平,水平一般都会自动转成数字储存。

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...

        大家讲道理

        这只是个映射的逻辑而已,根本没必要用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'))
          최신 다운로드
          더>
          웹 효과
          웹사이트 소스 코드
          웹사이트 자료
          프론트엔드 템플릿
          회사 소개 부인 성명 Sitemap
          PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!