Rumah  >  Soal Jawab  >  teks badan

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

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

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

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

ringa_leeringa_lee2740 hari yang lalu1725

membalas semua(4)saya akan balas

  • ringa_lee

    ringa_lee2017-04-18 10:08:45

    pandas sangat mudah untuk dilaksanakan, cuma tukarkannya kepada objek Kategori. Istilah dipanggil faktor dan tahap, dan tahap secara umumnya ditukar kepada storan berangka.

    c = ['A','A','A','B','B','C','C','C','C']
    category = pd.Categorical(c)

    Seterusnya, semak label kategori

    print category.labels

    balas
    0
  • PHP中文网

    PHP中文网2017-04-18 10:08:45

    Terdapat yang siap dalam sklearn:

    preprocessing.LabelEncoder().fit_transform(data)

    Lihat dokumentasi rasmi untuk butiran

    Anda boleh terus menukar antara aksara dan nombor

    balas
    0
  • 阿神

    阿神2017-04-18 10:08:45

    Saya tidak pernah menggunakannya dalam amalan Saya tidak tahu sama ada fungsi map boleh memenuhi keperluan anda untuk butiran, sila rujuk dokumen
    http://pandas.pydata.org/pand. ..

    balas
    0
  • 大家讲道理

    大家讲道理2017-04-18 10:08:45

    Ini hanya logik 映射 Tidak perlu menggunakan panda dan scikit-belajar Mereka berlebihan dan berlebihan

    a = ['A','A','A','B','B','C','C','C','C']
    result = [x for x in map(lambda c: ord(c) - ord('A'), a)]

    Jika anda perlu menggunakan panda, bukankah ini yang betul?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'))

    balas
    0
  • Batalbalas