【问题标题】:How to labeling with Pandas (.map)?如何使用 Pandas (.map) 进行标记?
【发布时间】:2021-09-19 11:30:43
【问题描述】:

下表中的熊猫标签(.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

【问题讨论】:

    标签: python pandas jupyter-notebook data-science


    【解决方案1】:

    更好的方法是:

    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,如果它们实际上不是高精度浮点数,则只显示第一个数字。

    【讨论】:

      【解决方案2】:

      尝试使用:

      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'
      })
      

      【讨论】:

      • 使用“.replace”结果还是一样
      • 检查列dtype是否为float。
      猜你喜欢
      • 2022-11-03
      • 1970-01-01
      • 2017-08-08
      • 2020-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-04
      • 2018-08-19
      相关资源
      最近更新 更多