【问题标题】:Encode all data in one column and assign the same code if data has a same value对一列中的所有数据进行编码,如果数据具有相同的值,则分配相同的代码
【发布时间】:2020-11-15 04:30:49
【问题描述】:

我有一个具有 appr 的数据框。 100 列和 20000 行。现在我想对一个分类列进行编码,以便它具有数字代码。检查其值计数后,结果显示如下:

 df['name'].value_counts()

    aaa        650
    baa        350
    cad         50
    dae         10
    ef3          1
    ....

唯一值的总数约为 3300。所以我可能有一个从 1 到 3300 的代码范围。我会 在训练之前标准化数字代码。由于数据集中已经有很多列,我不喜欢使用一种热编码方法。那么我该怎么做呢?谢谢!

【问题讨论】:

    标签: pandas dataframe


    【解决方案1】:

    您可以使用 ngroup() 枚举每个组。它看起来像:

     df.assign(num_code=lambda x: x.groupby(['name']).ngroup())
    

    我不知道该列包含什么样的信息,但是我不确定将增量数字代码分配给似乎对训练模型具有分类的列是否有意义。

    【讨论】:

    • 你很棒:) @Rik Kraan 谢谢!效果很好
    猜你喜欢
    • 2022-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-05
    相关资源
    最近更新 更多