如何解决如何使用 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
解决方法
更好的方法是:
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'
})
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。