Maison > Questions et réponses > le corps du texte
例如我有一个标签列形如:
[A,A,A,B,B,C,C,C,C]
转化为:
[0,0,0,1,1,2,2,2,2]
pandas和scikit-learn中有简单的实现吗?
另外大家在学习一个新的包时是怎样根据问题找到文档的具体位置的?有啥经验可以交流下吗?谢谢啦!
ringa_lee2017-04-18 10:08:45
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
PHP中文网2017-04-18 10:08:45
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
阿神2017-04-18 10:08:45
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. ..
大家讲道理2017-04-18 10:08:45
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'))