【问题标题】:How to create labels (auto encoding) in Python [duplicate]如何在 Python 中创建标签(自动编码)[重复]
【发布时间】:2019-07-22 15:46:36
【问题描述】:

我有一个这样的数据框:

Name  subname Feature1  Feature2 ...
AAA     a     0.123     0.345 ...
AAA     b     0.123     0.345 ...
BBB     a     0.123     0.345 ...
BBB     b     0.123     0.345 ...

我要创建标签(添加新列):

Name  subname Feature1  Feature2 ...Class
AAA     a     0.123     0.345 ...    1
AAA     b     0.123     0.345 ...    1
BBB     a     0.123     0.345 ...    2
BBB     b     0.123     0.345 ...    2

为了让数据适合分类模型,有没有一种方法可以有效地创建这些标签?我得到了超过 5000 行,非常感谢。

【问题讨论】:

  • 你在编码什么,只是Name?如果是df['Class'] = pd.factorize(df['Name'])[0] + 1,如果是2D 分解,您可以使用np.uniquereturn_inverse
  • 您有单独的数据框或系列中的标签还是什么?
  • 是的,仅根据“名称”,在最后一列中有标签,以便我可以适应 GDBT 模型来选择特征,这是正确的方法吗?
  • 欺骗中的两个答案都是完全有效的,你可以选择使用哪个
  • @user3483203 我在 Google 上查看了一些教程,我可以使用“from sklearn.preprocessing import LabelEncoder”之类的东西吗?这会一样吗?非常感谢。

标签: python pandas encoding encode


【解决方案1】:

你可以试试

labels, uniques = pd.factorize(df['Name'].tolist())
df['labels'] = labels

并且会得到一个 array([0, 0, 1, 1])

【讨论】:

    猜你喜欢
    • 2016-02-05
    • 1970-01-01
    • 1970-01-01
    • 2011-08-27
    • 2015-04-25
    • 2017-01-29
    • 1970-01-01
    • 1970-01-01
    • 2013-06-25
    相关资源
    最近更新 更多