【问题标题】:Python PANDAS: How to Reverse One-Hot Encoding Back to Categorical [duplicate]Python PANDAS:如何将 One-Hot 编码反转回分类 [重复]
【发布时间】:2018-03-19 21:30:16
【问题描述】:

我有一个具有以下一般布局的数据框:

id,ind_1,ind_2_ind_3
1,0,1,0
1,1,0,0
2,0,1,0
2,0,0,1
3,0,0,1
3,1,0,0

我想添加一个额外的列,其值为“1”时的原始指标名称,应该如下所示:

id,ind_1,ind_2,ind_3,ind_all
1,0,1,0,ind_2
1,1,0,0,ind_1
2,0,1,0,ind_2
2,0,0,1,ind_3
3,0,0,1,ind_3
3,1,0,0,ind_1

欢迎任何提示!

【问题讨论】:

    标签: python pandas numpy


    【解决方案1】:

    你需要

    df['ind_all'] = (df.iloc[:, 1:] == 1).idxmax(1)
    
    
        id  ind_1   ind_2   ind_3   ind_all
    0   1   0       1       0       ind_2
    1   1   1       0       0       ind_1
    2   2   0       1       0       ind_2
    3   2   0       0       1       ind_3
    4   3   0       0       1       ind_3
    5   3   1       0       0       ind_1
    

    【讨论】:

    • 如果我们使用 idxmax,那么 ==1 的意义何在? df.set_index('id').idxmax(1).values 例如,我认为更具可读性。
    猜你喜欢
    • 2016-11-15
    • 2023-01-16
    • 1970-01-01
    • 2017-11-06
    • 1970-01-01
    • 2020-10-08
    • 2020-07-18
    • 2023-03-13
    • 2021-04-14
    相关资源
    最近更新 更多