【问题标题】:Pandas: Get Dummies熊猫:获得假人
【发布时间】:2016-03-29 13:05:36
【问题描述】:

我有以下数据框:

   amount  catcode    cid      cycle      date     di  feccandid    type
0   1000    E1600   N00029285   2014    2014-05-15  D   H8TX22107   24K
1   5000    G4600   N00026722   2014    2013-10-22  D   H4TX28046   24K
2      4    C2100   N00030676   2014    2014-03-26  D   H0MO07113   24Z

我想为type 列中的值创建虚拟变量。大约有 15 个。我试过这个:

pd.get_dummies(df['type'])

它返回这个:

           24A  24C  24E  24F  24K  24N  24P  24R  24Z
date                                    
2014-05-15  0    0    0    0    1    0    0    0    0
2013-10-22  0    0    0    0    1    0    0    0    0
2014-03-26  0    0    0    0    0    0    0    0    1

我想要为Type 中的每个唯一值创建一个虚拟变量列

【问题讨论】:

  • 你不是说pd.get_dummies(df['type'])吗?
  • 是的!谢谢你。现在有没有办法将它添加到我的 df 中,或者我应该只是加入?
  • 你希望最终的 df 看起来像什么?
  • 新的 fd 应该在新的 df 中包含虚拟列
  • 所以你可以join 然后:df.join(pd.get_dummies(df['type']))

标签: python pandas dummy-variable


【解决方案1】:

你可以试试:

df = pd.get_dummies(df, columns=['type'])

【讨论】:

    【解决方案2】:

    考虑我有以下数据框:

       Survived  Pclass     Sex   Age     Fare
    0         0       3    male  22.0   7.2500
    1         1       1  female  38.0  71.2833
    2         1       3  female  26.0   7.9250
    3         1       1  female  35.0  53.1000
    4         0       3    male  35.0   8.0500
    

    get_dummies有两种实现方式:

    方法一:

    one_hot = pd.get_dummies(dataset, columns = ['Sex'])
    

    这将返回:

       Survived  Pclass  Age     Fare  Sex_female  Sex_male
    0         0       3   22   7.2500           0         1
    1         1       1   38  71.2833           1         0
    2         1       3   26   7.9250           1         0
    3         1       1   35  53.1000           1         0
    4         0       3   35   8.0500           0         1
    

    方法二:

    one_hot = pd.get_dummies(dataset['Sex'])
    

    这将返回:

       female  male
    0       0     1
    1       1     0
    2       1     0
    3       1     0
    4       0     1
    

    【讨论】:

      【解决方案3】:

      请尝试:

      type_dummies = pd.get_dummies(df['type'],drop_first=True)  
      df = pd.concat([df,type_dummies],axis=1)
      

      【讨论】:

        猜你喜欢
        • 2023-01-17
        • 2016-08-08
        • 2021-10-20
        • 1970-01-01
        • 2020-08-31
        • 1970-01-01
        • 2021-02-24
        • 2019-09-16
        相关资源
        最近更新 更多