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

例如我有一个标签列形如:
[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

répondre à tous(4)
左手右手慢动作

pandas est très simple à mettre en œuvre, il suffit de le convertir en objet Catégories. Les termes sont appelés facteurs et niveaux, et les niveaux sont généralement automatiquement convertis en stockage numérique.

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

Ensuite, vérifiez le label de la catégorie

print category.labels
洪涛

Il y en a des tout faits dans sklearn :

preprocessing.LabelEncoder().fit_transform(data)

Voir la documentation officielle pour plus de détails

Vous pouvez convertir directement entre les caractères et les nombres

阿神

Je ne l'ai jamais utilisé en pratique. Je ne sais pas si la fonction map peut répondre à vos besoins. Pour plus de détails, veuillez vous référer au document
http://pandas.pydata.org/pand. ..

大家讲道理

C'est juste 映射 de la logique. Il n'est pas nécessaire d'utiliser des pandas et scikit-learn. Ils sont excessifs et excessifs

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

Si vous devez utiliser des pandas, alors n'est-ce pas le bon ?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'))
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal