如何使用 Pandas (.map) 进行标记?

问题描述

下表中带有pandas(.map)的标签

m2m_similarity.columns = ['MoviId 1','MoviId 2','similarity_score']
m2m_similarity.head(3)

我试图让标签稍微相似、相似和精确

m2m_similarity['analysis'] = m2m_similarity['similarity_score'].map({
    0.1: 'slightly-similar',0.2: 'slightly-similar',0.3: 'slightly-similar',0.4: 'slightly-similar',0.5: 'similar',0.6: 'similar',0.7: 'similar',0.8: 'similar',0.9: 'similar',1.0: 'Exacly'
})
m2m_similarity.head(3)

结果是Nan

enter image description here

enter image description here

解决方法

更好的方法是:

m2m_similarity['analysis'] = m2m_similarity['similarity_score'].map(lambda s: 'Exacly' if round(s,2) == 1 else ('similar' if round(s,2) >= 0.5 else 'slightly-similar'))

因为它将涵盖两者之间的所有选项。 无论如何,请确保在 similarity_score 中您有数字而不是 strings,如果它们实际上不是高精度浮点数,则您只显示第一个数字。

,

尝试使用:

m2m_similarity['analysis'] = m2m_similarity['similarity_score'].replace({
    0.1: 'slightly-similar',0.2: 'slightly-similar',0.3: 'slightly-similar',0.4: 'slightly-similar',0.5: 'similar',0.6: 'similar',0.7: 'similar',0.8: 'similar',0.9: 'similar',1.0: 'Exacly'
})

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...