【问题标题】:Multindex to one hot vector in pandas多索引到熊猫中的一个热向量
【发布时间】:2019-09-24 16:52:31
【问题描述】:

我有一个这样的多索引数据框

                    bill
    City   Month    
    3          01        14586
               02        14316
               03        17261
               04        16642
               05        14977
               06        14237
               07        14486
               08        14216
               09        17461
               10        16742
               11        14677
               12        14637

    4          01        24586
               02        24316
               03        27261
               04        26642
               05        24977
               06        24337
               07        24486
               08        24216
               09        27461
               10        26742
               11        24677
               12        24637

我从这行代码中得到的 df = df.groupby(['City', 'Month']).sum()

我想为Month 索引获取一个热编码并将其转换为 12 列以便拥有这样的数据帧

     City   M1 M2 M3 ... M12   bill     
     3       1 0   0     0       46
     3       0 1   0     0       64
     3       0 0   1     0       386
    ...      
     4       1 0   0     0       546
     4       0 1   0     0       686 
    ...

数字不匹配,但我认为想法很明确。我的目标是billMonth 是 ML 模型的特征

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    首先将MultiIndex 转换为DataFrame.reset_index 的列,然后使用get_dummies 和最后一列bill 重新分配DataFrame.pop 的列:

    df = df.reset_index()
    
    df = pd.get_dummies(df, columns=['Month'], prefix='M', prefix_sep='')
    df['bill'] = df.pop('bill')
    print (df)
      City  M01  M02  M03  M04  M05  M06   bill
    0    3    1    0    0    0    0    0  14586
    1    3    0    1    0    0    0    0  14316
    2    3    0    0    1    0    0    0  17261
    3    3    0    0    0    1    0    0  16642
    4    3    0    0    0    0    1    0  14977
    5    3    0    0    0    0    0    1  14337
    

    【讨论】:

      猜你喜欢
      • 2016-10-16
      • 2019-01-19
      • 1970-01-01
      • 2019-11-03
      • 2018-09-27
      • 1970-01-01
      • 2019-10-28
      • 1970-01-01
      • 2016-07-06
      相关资源
      最近更新 更多